Domanda

Ciao Iam reindirizzamento di tutto il mio traffico verso https come suggerito nella base della conoscenza: https://openshift.redhat.com/community/kb/kb-e1044-How-Te1044-How-ToRerect-traffic-to-Https

Tuttavia dopo aver effettuato questo IAM non è in grado di ottenere l'indirizzo IP degli utenti e ottenere invece l'indirizzo IP del server che sta reindirizzando:

Di seguito è riportato un esempio di un'implementazione specifica di MVC Spring Java.L'attualeViewEdip diventa i server che hanno reindirizzato a https anziché gli utenti IP.

 @RequestMapping(value = "/payment/", method = RequestMethod.GET)
  public String newBracqet(Model model, HttpServletRequest request) {
    String currentViewedIP = request.getRemoteAddr();
 }
.

È stato utile?

Soluzione

Se l'utente è dietro un server proxy o accedi al server Web tramite un bilanciatore di carico (ad esempio, nell'hosting del cloud), il codice di cui sopra otterrà l'indirizzo IP del server Proxy o Carica Bailancer Server, non l'indirizzo IP originaledi un cliente.

Per risolverlo, è necessario ottenere l'indirizzo IP dell'intestazione HTTP della richiesta "X-Inolthed-for (XFF)".

  //is client behind something?
  String ipAddress = request.getHeader("X-FORWARDED-FOR");  
  if (ipAddress == null) {  
     ipAddress = request.getRemoteAddr();  
  }
.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top