HTTPSへのOpenShiftリダイレクトサービスはユーザーのIPアドレスを失います

StackOverflow https://stackoverflow.com//questions/24013341

質問

こんにちは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();  
  }
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top