SeamアクションからクライアントのIPアドレスを記録する必要があります。現在、我々は、コードを使用している:間違ったアドレスを返すHttpServletRequest.getRemoteAddr()
ExternalContext context = FacesContext.getCurrentInstance().getExternalContext();
HttpServletRequest request = (HttpServletRequest)context.getRequest();
this.remoteAddress = request.getRemoteAddr();
をしかし、これは常にではなく、クライアントのIPアドレスでは、当社のネットワークの内部アドレスを返すしているようです。私の研究では、ネットワークでリバースプロキシを使用すると混乱する可能性がありますが、Webサーバーを再構成することで問題を解決できる可能性があります。他の誰かがこの問題を抱えていましたが、どのように解決しましたか?
私たちはJBoss 5.1アプリケーションサーバーとApache Webサーバーを使用しています。ありがとう!
これはHTTPプロキシには役立ちますが、NATファイアウォールではあまり役に立ちません。 – bmargulies
それは良い情報ですが、何がプロキシを誤動作させる可能性がありますか?私の理解は、すべてが正しく設定されていれば、request.getRemoteAddr()はとにかく "x_forwarded_for"ヘッダーを調べる必要があります。正しく設定されていないと、そのヘッダーが存在しないこともあります。 –