OpenShift Redirection Service sur HTTPS perd les utilisateurs Adresse IP
-
21-12-2019 - |
Question
salut iam redirige tout mon trafic vers https comme suggéré dans la base de connaissances: https://openshift.redhat.com/community/kb/kb-e1044-how-to-redirect-traffic-a-htttps
Cependant, après cela, je suis incapable d'obtenir l'adresse IP des utilisateurs et obtenez plutôt l'adresse IP du serveur qui redirige:
ci-dessous est un exemple de mise en œuvre spécifique de Java Spring Spring MVC.Le courant Viewedip devient les serveurs qui ont fait redirigé vers https plutôt que les utilisateurs IP.
@RequestMapping(value = "/payment/", method = RequestMethod.GET)
public String newBracqet(Model model, HttpServletRequest request) {
String currentViewedIP = request.getRemoteAddr();
}
La solution
Si l'utilisateur est derrière un serveur proxy ou accédez à votre serveur Web via une balanceur de charge (par exemple, dans l'hébergement en nuage), le code ci-dessus obtiendra l'adresse IP du serveur de serveur proxy ou de la charge de chargement, pas l'adresse IP d'origine.d'un client.
Pour résoudre le problème, vous devez obtenir l'adresse IP de l'en-tête HTTP de la demande "X-Forwarded-for (XFF)".
//is client behind something?
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}