apache+weblogic10g获取客户实际IP地址

在apache2.2+Weblogic 10g整合系统中,apache会对request对象进行包装,附加一些WLS要用的头信息。这种情况下,
直接用request.getRemoteAddr()是无法取到真正的客户IP的。
apache会增加下列头信息:
X-Forwarded-For=211.161.1.239
WL-Proxy-Client-IP=211.161.1.239
方案1:
所取得客户的IP需要这样:
    String ip=request.getHeader("X-Forwarded-For");
    if(ip == null || ip.length() == 0) {
        ip=request.getHeader("WL-Proxy-Client-IP");
    }
    if(ip == null || ip.length() == 0) {
        ip=request.getRemoteAddr();
    }
 
方案2:
也可通过weblogic的设置直接能过request.getRemoteAddr();取得客户的IP。
进入weblogic控制台,找到
domain->Environment->Servers->yourServerName
找到Advanced连接,并点击,在后续页面上
找到  WebLogic Plug-In Enabled 选项,并选中,保存。
该选项要求重启weblgoic才生效。
如果该选项不可选,点击左上的“Lock & Edit”按钮,就可以选了。

但是如果apache设置的是反向代理这样就不行了,因为apache不会向heaer写入WL-Proxy-Client-IP的信息。只能通过第一种方法解决。

我通过方案2解决了这个问题,并且在Windows和Linux下都测试通过,另外如果Weblogic是集群的话,要每个节点里的WebLogic Plug-In Enabled都选上才行。
方案1未验证。
原文地址:http://blog.sina.com.cn/s/blog_4b312fc20100e5bm.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值