java如何从服务器端更改HttpServletRequest中的IP?
很多人问如何从客户端更改de-IP,但我需要从服务器端进行更改(如果可能的话)
问题是我从HttpServletRequest获取IP。getRemoteAddr(),但是现在我们在IHS之前使用了代理,这个IP总是与代理IP一起提供,而不是真正的客户端IP
代理在请求中的新特定头中提供真实IP
好的,我知道这听起来很简单,我只改变获取IP的方式,并从代理提供的特定头获取IP。这是一个很好的解决方案,问题是我们必须更改很多类,我在考虑另一种可能的方式,例如,在基类的请求中,将这个IP与真实IP更改一次,然后每个人(扩展基类的人)都能正确地更新IP
那么,我能不能这样做
# 1 楼答案
您需要添加一个过滤器来创建HttpServletRequestWrapper。调整部署描述符
各部分:
代理过滤器:
ProxyRequestWrapper:
网络。xml
ServletBehindProxy:
要测试它,可以使用ModifyHeaders浏览器插件: