|
@@ -1,85 +0,0 @@
|
|
|
-package com.diagbot.filter;
|
|
|
-
|
|
|
-import com.netflix.zuul.ZuulFilter;
|
|
|
-import com.netflix.zuul.context.RequestContext;
|
|
|
-import org.slf4j.Logger;
|
|
|
-import org.slf4j.LoggerFactory;
|
|
|
-import org.springframework.stereotype.Component;
|
|
|
-
|
|
|
-import javax.servlet.http.HttpServletRequest;
|
|
|
-import java.util.ArrayList;
|
|
|
-import java.util.List;
|
|
|
-
|
|
|
-/**
|
|
|
- * @Description:
|
|
|
- * @author: gaodm
|
|
|
- * @time: 2018/8/8 13:58
|
|
|
- */
|
|
|
-@Component
|
|
|
-public class IPFilter extends ZuulFilter {
|
|
|
-
|
|
|
- Logger logger= LoggerFactory.getLogger(getClass());
|
|
|
-
|
|
|
- @Override
|
|
|
- public String filterType() {
|
|
|
- return "pre";
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public int filterOrder() {
|
|
|
- return 0;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public boolean shouldFilter() {
|
|
|
- return true;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Object run() {
|
|
|
-// RequestContext ctx= RequestContext.getCurrentContext();
|
|
|
-// HttpServletRequest req=ctx.getRequest();
|
|
|
-// String ipAddr=this.getIpAddr(req);
|
|
|
-// logger.info("请求IP地址为:[{}]",ipAddr);
|
|
|
-// //配置本地IP白名单,生产环境可放入数据库或者redis中
|
|
|
-// List<String> ips=new ArrayList<String>();
|
|
|
-// ips.add("172.0.0.1");
|
|
|
-// ips.add("171.0.0.1");
|
|
|
-// ips.add("0:0:0:0:0:0:0:1");
|
|
|
-//
|
|
|
-// if(!ips.contains(ipAddr)){
|
|
|
-// logger.info("IP地址校验不通过!!!");
|
|
|
-// ctx.setResponseStatusCode(401);
|
|
|
-// ctx.setSendZuulResponse(false);
|
|
|
-// ctx.setResponseBody("IpAddr is forbidden!");
|
|
|
-// }
|
|
|
-// logger.info("IP校验通过。");
|
|
|
- return null;
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 获取Ip地址
|
|
|
- * @param request
|
|
|
- * @return
|
|
|
- */
|
|
|
- public String getIpAddr(HttpServletRequest request){
|
|
|
-
|
|
|
- String ip = request.getHeader("X-Forwarded-For");
|
|
|
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
- ip = request.getHeader("Proxy-Client-IP");
|
|
|
- }
|
|
|
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
- ip = request.getHeader("WL-Proxy-Client-IP");
|
|
|
- }
|
|
|
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
- ip = request.getHeader("HTTP_CLIENT_IP");
|
|
|
- }
|
|
|
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
- ip = request.getHeader("HTTP_X_FORWARDED_FOR");
|
|
|
- }
|
|
|
- if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) {
|
|
|
- ip = request.getRemoteAddr();
|
|
|
- }
|
|
|
- return ip;
|
|
|
- }
|
|
|
-}
|