最新の安定バージョンについては、Spring Security 6.3.1 を使用してください!

HTTP

静的リソース (英語) を含むすべての HTTP ベースの通信は、TLS を使用して保護する [OWASP] (英語) 必要があります。

フレームワークとして、Spring Security は HTTP 接続を処理しないため、HTTPS を直接サポートしません。ただし、HTTPS の使用に役立つ多くの機能を提供します。

HTTPS にリダイレクト

クライアントが HTTP を使用する場合、Spring Security は、サーブレット環境と WebFlux 環境の両方を HTTPS にリダイレクトするように構成できます。

Strict Transport Security

Spring Security は Strict Transport Security をサポートし、デフォルトで有効にします。

プロキシサーバー構成

プロキシサーバーを使用する場合は、アプリケーションが適切に構成されていることを確認することが重要です。例: 多くのアプリケーションには、192.168.1:8080 (英語) のアプリケーションサーバーにリクエストを転送することで example.com/ (英語) のリクエストに応答するロードバランサーがあります。適切な構成がないと、アプリケーションサーバーはロードバランサーが存在することを認識せず、192.168.1:8080 (英語) がクライアントによってリクエストされたかのようにリクエストを処理します。

これを修正するには、RFC 7239 [IETF] (英語) を使用して、ロードバランサーが使用されていることを指定します。アプリケーションがこれを認識できるようにするには、X-Forwarded ヘッダーを認識するようにアプリケーションサーバーを構成する必要があります。たとえば、Tomcat は RemoteIpValve [Apache] (英語) を使用し、Jetty は ForwardedRequestCustomizer (英語) を使用します。または、Spring ユーザーは ForwardedHeaderFilter [GitHub] (英語) を活用できます。

Spring Boot ユーザーは、server.use-forward-headers プロパティを使用してアプリケーションを構成できます。詳細については、Spring Boot ドキュメントを参照してください。