Сервис Redirect OpenShift для HTTPS теряет IP-адрес пользователей

StackOverflow https://stackoverflow.com//questions/24013341

Вопрос

Привет, я перенаправляю весь мой трафик к 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();  
  }
.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top