HTTPSへのOpenShiftリダイレクトサービスはユーザーのIPアドレスを失います
-
21-12-2019 - |
質問
こんにちはIAMは、ナレッジベースで提案されているようにHTTPSへのすべてのトラフィックをリダイレクトします。-https "rel=" nofollow "> https://openshift.redhat.com/community/kb/kb-e1044-how-to-redirect-traffic-to-https
しかし、このIAMの後にユーザーのIPアドレスを取得できず、代わりにリダイレクトしているサーバーのIPアドレスを取得できます。
以下は、Java Spring MVC固有の実装例です。CurrentViewedIPは、ユーザーIPではなくHTTPSにリダイレクトされたサーバーです。 @RequestMapping(value = "/payment/", method = RequestMethod.GET)
public String newBracqet(Model model, HttpServletRequest request) {
String currentViewedIP = request.getRemoteAddr();
}
. 解決
ユーザーがプロキシサーバーの背後にある場合(たとえば、クラウドホスティング内など)、上記のコードは、元のIPアドレスではなく、プロキシサーバーまたはロードバランササーバーのIPアドレスを取得します。クライアントの。
それを解決するには、要求のHTTPヘッダーのIPアドレス「X-Forwarded-for(XFF)」を取得する必要があります。
//is client behind something?
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
. 所属していません StackOverflow