webservice校验IP白名单

This commit is contained in:
tangft 2019-03-20 16:02:09 +08:00
parent 3339d580dc
commit 1a26d92549

View File

@ -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;
}
}