OpenShift 리디렉션 서비스는 HTTPS로 사용자 IP 주소를 잃습니다
-
21-12-2019 - |
문제
안녕하세요 IAM은 지식 기반에서 제안 된 것처럼 모든 트래픽을 https로 리디렉션합니다. https://openshift.redhat.com/community/kb/kb-e1044-how-to-redirect-traffic-to-htps
그러나이 IAM을 수행 한 후 사용자 IP 주소를 가져올 수 없으며 리디렉션되는 서버의 IP 주소를 가져 오는 경우 :
아래는 Java Spring MVC 특정 구현의 예입니다.CURRENTVIEWEDIP는 사용자 IP가 아닌 HTTPS로 리디렉션 된 서버가됩니다.
@RequestMapping(value = "/payment/", method = RequestMethod.GET)
public String newBracqet(Model model, HttpServletRequest request) {
String currentViewedIP = request.getRemoteAddr();
}
. 해결책
사용자가 프록시 서버 뒤에 있거나로드 밸런서 (예 : 클라우드 호스팅)를 통해 웹 서버에 액세스하면 위의 코드는 프록시 서버 또는로드 밸런서 서버의 IP 주소가 원래 IP 주소가 아닙니다.클라이언트의.
해결을 위해 요청의 HTTP 헤더의 IP 주소를 얻어야합니다. "x-forward-for (xff)".
//is client behind something?
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
. 제휴하지 않습니다 StackOverflow