webservice校验IP白名单
This commit is contained in:
parent
3339d580dc
commit
1a26d92549
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user