Сервис Redirect OpenShift для HTTPS теряет IP-адрес пользователей
-
21-12-2019 - |
Вопрос
Привет, я перенаправляю весь мой трафик к https, как предложено в базе знаний: https://openshift.redhat.com/community/kb/kb-e1044-how-to-redirect-traffic-To-https
Однако после этого IAM невозможно получить IP-адрес пользователя и вместо этого получить IP-адрес сервера, который перенаправляется:
Ниже приведен пример конкретной реализации Java Spring MVC.CENECTVEWEDIP становится сервером, которые сделали перенаправленные в HTTPS, а не IP-адрес пользователя. @RequestMapping(value = "/payment/", method = RequestMethod.GET)
public String newBracqet(Model model, HttpServletRequest request) {
String currentViewedIP = request.getRemoteAddr();
}
. Решение
Если пользователь находится за прокси-сервером или получить доступ к веб-серверу через балансировщик нагрузки (например, в облачном хостинге), приведенный выше код получит IP-адрес прокси-сервера или сервера Balancer Load, а не оригинальный IP-адресклиента.
Чтобы решить его, вы должны получить IP-адрес заголовка HTTP-адреса запроса «X-переадресацию-для (XFF)».
//is client behind something?
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
. Не связан с StackOverflow