È necessario registrare l'indirizzo IP del client da un'azione Seam. Attualmente, stiamo usando il codice:HttpServletRequest.getRemoteAddr() restituisce l'indirizzo errato
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)context.getRequest();
this.remoteAddress = request.getRemoteAddr();
Tuttavia, questo sembra essere sempre la restituzione di un indirizzo interno della nostra rete, piuttosto che l'indirizzo IP del client. Dalla mia ricerca, sembra che avere un proxy inverso nella rete possa confondere le cose, ma potremmo essere in grado di risolverlo riconfigurando i nostri server web. Qualcun altro ha avuto questo problema e come lo hai risolto?
Utilizziamo server di app JBoss 5.1 e server Web Apache. Grazie!
Questo aiuterà per un proxy HTTP, ma non tanto per un firewall NAT. – bmargulies
Grazie che è una buona informazione, ma cosa potrebbe fare un proxy comportarsi male? La mia comprensione è che se tutto è configurato correttamente, request.getRemoteAddr() dovrebbe guardare comunque l'intestazione "x_forwarded_for", e se non è impostato correttamente, quell'intestazione potrebbe anche non esserci. –