像移動網關一樣,iisforward這個ISAPI過濾器也會對request對象進行再包裝,附加一些WLS要用的頭資訊。這種情況下,直接用request.getRemoteAddr()是無法取到真正的客戶IP的。
實際的iisforward附加頭如下:
WL-Proxy-Client-IP=211.161.1.239
Proxy-Client-IP=211.161.1.239
X-Forwarded-For=211.161.1.239
WL-Proxy-Client-Keysize=
WL-Proxy-Client-Secretkeysize=
X-WebLogic-Request-ClusterInfo=true
X-WebLogic-KeepAliveSecs=30
X-WebLogic-Force-JVMID=-327089098
WL-Proxy-SSL=false
綜上,正确作法如下: