From 1a26d9254984bdddbc977686f41b11255bce6cfc Mon Sep 17 00:00:00 2001 From: tangft <32189@DESKTOP-M6TAG3K> Date: Wed, 20 Mar 2019 16:02:09 +0800 Subject: [PATCH] =?UTF-8?q?webservice=E6=A0=A1=E9=AA=8CIP=E7=99=BD?= =?UTF-8?q?=E5=90=8D=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../tenwa/makeContract/WebServiceFilter.java | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src_tenwa/com/tenwa/makeContract/WebServiceFilter.java b/src_tenwa/com/tenwa/makeContract/WebServiceFilter.java index 601bf3e2d..28a39750f 100644 --- a/src_tenwa/com/tenwa/makeContract/WebServiceFilter.java +++ b/src_tenwa/com/tenwa/makeContract/WebServiceFilter.java @@ -8,6 +8,7 @@ import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; +import javax.servlet.http.HttpServletRequest; import com.tenwa.httpclient.resources.QuartzPropertiesUtil; @@ -22,16 +23,17 @@ public class WebServiceFilter implements Filter { @Override public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException { - String ips = QuartzPropertiesUtil.get("webServiceaddress"); - if(ips.indexOf(req.getRemoteAddr()) != -1){ + HttpServletRequest request = (HttpServletRequest) req; + + if(this.checkIp(request)){ chain.doFilter(req, res); }else{ res.setCharacterEncoding("GBK"); res.getWriter().println("对不起,您使用的电脑IP不在系统的白名单中,请联系管理员!!!"); } // System.out.println(req.getRemoteAddr()); - System.out.println("远程IP:" + req.getRemoteHost()); - + System.out.println("x-forwarded-for=" + request.getHeader("x-forwarded-for")); + System.out.println("WL-Proxy-Client-IP=" + request.getHeader("WL-Proxy-Client-IP")); } @Override @@ -40,4 +42,20 @@ public class WebServiceFilter implements Filter { } + //校验IP地址 + private boolean checkIp(HttpServletRequest request) { + String ipWhiteList = QuartzPropertiesUtil.get("webServiceaddress"); + String ips = request.getHeader("x-forwarded-for"); + if (ips == null || ips.length() == 0) { + ips = request.getRemoteAddr(); + } + String[] ip = ips.split(","); + for(int i=0; ip.length>i;i++){ + if(ipWhiteList.indexOf(ip[i]) != -1){ + return true; + } + } + return false; + } + }