L'accès à la source de la demande la propriété intellectuelle dans le Printemps 3 application web MVC
Est-il de toute façon dans Spring MVC 3 pour accéder à l'en-tête de demande d'informations (comme la source de l'adresse IP, etc.), lors de l'analyse d'une demande de @Contrôleur?
OriginalL'auteur Nico Huysamen | 2012-01-19
Vous devez vous connecter pour publier un commentaire.
Vous pouvez le récupérer à partir de
HttpServletRequest
, à l'aide degetRemoteAddr()
pour obtenir l'accès à l'adresse IP de l'utilisateur etgetHeader()
pour obtenir la valeur d'en-tête.Par exemple
Vous pouvez passer d'autres paramètres à la
doSomething()
méthode, comme le modèle ou la demande params.si le client est derrière un serveur proxy alors possible solution en utilisant
String ip = req.getHeader("X-FORWARDED-FOR");
et puis, de le manipuler avec une condition comme
if (ip == null) ip = request.getRemoteAddr();
Depuis
request.getRemoteAddr()
est la norme de la norme API des Servlets qui est utilisé non seulement dans votre code, mais dans d'autres 3ème partie des composants ainsi, la bonne approche quand derrière un proxy est de le brancher dans une mise en œuvre deHttpServletRequest
qui est conscient de procuration en-têtes. Si vous utilisez tomcat (par exemple), puis vous faites cela en ajoutant<Valve className="org.apache.catalina.valves.RemoteIpValve" />
à votreserver.xml
.l'IP vient de connexion de socket non pas à partir des en-têtes
OriginalL'auteur ruslan