|
@@ -23,41 +23,8 @@ public class FeignHeadInterceptor implements RequestInterceptor {
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
|
if(attributes!=null) {
|
|
if(attributes!=null) {
|
|
HttpServletRequest request = attributes.getRequest();
|
|
HttpServletRequest request = attributes.getRequest();
|
|
- String ipAddr = getIpAddr(request);
|
|
|
|
- String ipAddress1 = IpUtils.getRealIpAdrress(request);
|
|
|
|
|
|
+ String ipAddr = IpUtils.getRealIpAdrress(request);
|
|
template.header(Constants.REAL_IP_ADDRESS_KEY, ipAddr);
|
|
template.header(Constants.REAL_IP_ADDRESS_KEY, ipAddr);
|
|
- log.info("FeignHeadInterceptor ipAddr:{}, ipAddress1:{}", ipAddr, ipAddress1);
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
- private String getIpAddr(HttpServletRequest request) {
|
|
|
|
- String ipAddress = request.getHeader("x-forwarded-for");
|
|
|
|
- if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
|
|
|
|
- ipAddress = request.getHeader("Proxy-Client-IP");
|
|
|
|
- }
|
|
|
|
- if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
|
|
|
|
- ipAddress = request.getHeader("WL-Proxy-Client-IP");
|
|
|
|
- }
|
|
|
|
- if(ipAddress == null || ipAddress.length() == 0 || "unknown".equalsIgnoreCase(ipAddress)) {
|
|
|
|
- ipAddress = request.getRemoteAddr();
|
|
|
|
- if(ipAddress.equals("127.0.0.1") || ipAddress.equals("0:0:0:0:0:0:0:1")) {
|
|
|
|
- //根据网卡取本机配置的IP
|
|
|
|
- InetAddress inet=null;
|
|
|
|
- try {
|
|
|
|
- inet = InetAddress.getLocalHost();
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- ipAddress= inet.getHostAddress();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- //对于通过多个代理的情况,第一个IP为客户端真实IP,多个IP按照','分割
|
|
|
|
- if(ipAddress!=null && ipAddress.length()>15) { //"***.***.***.***".length() = 15
|
|
|
|
- if(ipAddress.indexOf(",")>0) {
|
|
|
|
- ipAddress = ipAddress.substring(0,ipAddress.indexOf(","));
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return ipAddress;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
}
|
|
}
|