OpenShift重定向服务到HTTPS失去用户IP地址
-
21-12-2019 - |
题
嗨iam将所有流量重定向到HTTPS,如知识库中所建议的: https://openshift.redhat.com/community/kb/kb-e1044-how-to-redirect-traffic-to-https
但是,在执行此后,IAM无法获取用户IP地址,然后获取已重定向的服务器的IP地址:下面是Java Spring MVC特定实现的示例。CurrentViewEdip成为服务器,该服务器是重定向到HTTPS而不是用户IP。
@RequestMapping(value = "/payment/", method = RequestMethod.GET)
public String newBracqet(Model model, HttpServletRequest request) {
String currentViewedIP = request.getRemoteAddr();
}
. 解决方案
如果用户在代理服务器后面或通过负载均衡器访问Web服务器(例如,在云主机中),上面的代码将获取代理服务器或负载均衡器服务器的IP地址,而不是原始IP地址客户端。
要解决它,您应该获取请求的HTTP标题“X-Forwarded-for(XFF)”的IP地址。 //is client behind something?
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
. 不隶属于 StackOverflow