|
@@ -0,0 +1,47 @@
|
|
|
+package com.dragonsoft.dcuc.approvegateway.filter;
|
|
|
+
|
|
|
+import com.dragonsoft.duceap.commons.util.ip.IpUtils;
|
|
|
+import com.netflix.zuul.ZuulFilter;
|
|
|
+import com.netflix.zuul.context.RequestContext;
|
|
|
+import com.netflix.zuul.exception.ZuulException;
|
|
|
+import org.springframework.cloud.netflix.zuul.filters.support.FilterConstants;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import javax.servlet.http.HttpServletRequest;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * <p>
|
|
|
+ * 获取请求者真实IP
|
|
|
+ * </p>
|
|
|
+ *
|
|
|
+ * @author huangzqa
|
|
|
+ * @date 2021/6/29
|
|
|
+ */
|
|
|
+@Component
|
|
|
+public class ForwardForFilter extends ZuulFilter {
|
|
|
+ @Override
|
|
|
+ public String filterType() {
|
|
|
+ return FilterConstants.PRE_TYPE;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public int filterOrder() {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public boolean shouldFilter() {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Object run() throws ZuulException {
|
|
|
+ RequestContext currentContext = RequestContext.getCurrentContext();
|
|
|
+ HttpServletRequest request = currentContext.getRequest();
|
|
|
+ String realIpAdrress = IpUtils.getRealIpAdrress(request);
|
|
|
+ Map<String, String> zuulRequestHeaders = currentContext.getZuulRequestHeaders();
|
|
|
+ zuulRequestHeaders.put("HTTP_X_FORWARDED_FOR", realIpAdrress);
|
|
|
+ return null;
|
|
|
+ }
|
|
|
+}
|