2017-07-16 16 views
0

私はSpring Securityでプロジェクトを開発しています。プロダクションサーバーにプロジェクトを読み込むまではすべてうまくいっていました。私は自分のローカルマシンにhttpを持っていますが、プロダクションサーバーにはhttpsがあります。httpsをHTTPにリダイレクトするSpringを停止できません

そして、私はエラー(ログインエラーの場合)直面している:私はこの問題についての私のベンダーを尋ねたが、彼らが言う

Mixed Content: The page at 'https://my.production.com/login' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://my.production.com/authorities'. This request has been blocked; the content must be served over HTTPS. 

Mixed Content: The page at 'https://my.production.com/login' was loaded over HTTPS, but requested an insecure XMLHttpRequest endpoint 'http://my.production.com/api/login?error=bad-credentials'. This request has been blocked; the content must be served over HTTPS. 

と(成功ログインの場合)を"あなたのアプリとnginxの間にhttpsがないので、これはあなたのアプリの問題です" ...

私はthisを試しましたが、この解決策非常に奇妙に見え、問題を解決しません(多くの構成クラスを追加する必要があります。実は、私はどのようにこれが発生する可能性が非常に混乱している、なぜそれが要求が行われたスキーマにリダイレクトするように、デフォルトの動作ではありません...

はまた、私は私の春のセキュリティの設定にこれを追加してみました:

.and().requiresChannel().anyRequest().requiresSecure() 

が、これは私のローカルマシン上と運用サーバー上ERR_TOO_MANY_REDIRECTSを起こし...

これはあまりにも助けにはならなかった。

http.portMapper() 
       .http(8080).mapsTo(8443); 

私はありません春のブートを使用しても、this、助けてみました。

成功の認証設定は次のようになります。

SavedRequestAwareAuthenticationSuccessHandler successHandler = new 
       SavedRequestAwareAuthenticationSuccessHandler(); 
     successHandler.setDefaultTargetUrl(env.getProperty("app.authenticationSuccessUrl")); 
+0

、あなたのWebアプリケーションでは「http」をハードコードしていない限り、これは、誤って構成本番サーバーに可能性があります。 nginxはプロキシとして働いていますか?Tomcatのようなものですか? – holmis83

+0

@ holmis83はい、nginxとtomcatがありますので、ベンダーにこの問題の修正について質問する必要がありますか? – Daria

答えて

1

Apache TomcatはHTTPSの背後で実行されている(リバース)プロキシ、リンク、正常に動作するためにリダイレクトするために必要ないくつかの設定があるかもしれません。

オープンのconf/server.xmlをは、既に存在しない場合は、次の属性を追加し、Connector要素を見つける:

  • proxyName - あなたのドメイン名に設定します。
  • proxyPort - 標準のhttpsポートを使用している場合は443に設定します。
  • scheme - httpsでサイトにアクセスする場合は「https」に設定します。
  • secure - httpsで「true」に設定されています。
<Connector proxyName="my.production.com" proxyPort="443" scheme="https" secure="true" ...> 

参考:Apache Tomcat 7: The HTTP Connector

+0

回答ありがとうございますが、ベンダーは私の問題を解決しました。これはサーバー側で行われました。 – Daria

関連する問題