2017-08-24 5 views
0

にリダイレクト、私のログインページがにAjaxリクエストを送信しGrailsの春のセキュリティは私のGrailsアプリ(2.3.11)で間違ったポート

https://myurl:80/my-app/login/ajaxSuccess

この結果、タイムアウトエラーが発生します(URLにポート80が追加されているため)。 この問題は、クライアントがトラフィックマネージャ(Big-IP)経由でアプリケーションにアクセスした場合にのみ発生します。サーバーIP経由でアプリケーションに直接アクセスすると、正しく動作します。

この問題を解決するためにGrailsで設定できることはありますか?この問題がアプリケーションやBig-IPに関連しているかどうかはわかりません。

これらは、ばねのセキュリティー・プラグインに関連する私のconfigs(Config.groovy)は、次のとおりです。

grails.plugins.springsecurity.successHandler.defaultTargetUrl = '/login/authSucccessExtJs' 
grails.plugins.springsecurity.successHandler.alwaysUseDefault = true 
grails.plugins.springsecurity.failureHandler.defaultFailureUrl = '/login/authFailExtJs?login_error=1' 
grails.plugins.springsecurity.password.algorithm = 'MD5' 

答えて

2

問題は、BIG-IPでSSLをオフロードしているので、それが返されますので、アプリケーションは、HTTPトラフィックを受信して​​いますあなたのクライアントへのhttpリンク。潜在的な解決策がいくつかあります。

  1. 設定のGrailsは要求があるにもかかわらず、httpsにすべてのURLを設定するには、HTTP
  2. ローカルトラフィックポリシーまたはのiRuleを経由してBIG-IPで(Grailsの優等これがあれば)(あなたがテストできるヘッダーX-Forwarded-Proto: httpsを挿入
  3. ストリームプロファイルまたはiRuleを通した応答トラフィックのBIG-IP上のHTTPSへのHTTPS URLを書き換えます。これはAJAXでは非常に問題になることがありますが、そうでなければ動作しますが、オプション1または2ははるかに効率的でメンテナンスは少なくなります。
関連する問題