最新の安定バージョンについては、Spring Security 6.4.5 を使用してください! |
Hello Spring Security
このセクションでは、Spring Security を Spring Boot で使用するための最小セットアップについて説明します。
完成したアプリケーションは、サンプルリポジトリ [GitHub] (英語) で見ることができます。参考用に最小限の Spring Boot + Spring Security アプリケーションをダウンロードできます。 |
Hello Spring Security Boot の開始
Maven プラグインの run
ゴールを使用して、Spring Boot アプリケーションを実行できるようになりました。次の例は、その方法 (およびその結果の出力の先頭) を示しています。
$ ./mvn spring-boot:run
...
INFO 23689 --- [ restartedMain] .s.s.UserDetailsServiceAutoConfiguration :
Using generated security password: 8e557245-73e2-4286-969a-ff57fe326336
...
Spring Boot 自動構成
Spring Boot が自動的に:
Spring Security のデフォルト構成を有効にします。これにより、サーブレット
Filter
がspringSecurityFilterChain
という名前の Bean として作成されます。この Bean は、アプリケーション内のすべてのセキュリティ(アプリケーションの URL の保護、送信されたユーザー名とパスワードの検証、ログインフォームへのリダイレクトなど)を担当します。user
のユーザー名と、コンソールに記録されるランダムに生成されたパスワードを使用して、UserDetailsService
Bean を作成します。Filter
をspringSecurityFilterChain
という名前の Bean に登録し、リクエストごとにサーブレットコンテナーに登録します。
Spring Boot の構成は少しですが、多くのことをしてくれます。機能の概要は以下の通りです。
アプリケーションとの対話には認証されたユーザーを要求する
デフォルトのログインフォームを生成します
ユーザーに
user
のユーザー名とコンソールに記録されるパスワードをフォームベース認証で認証させる (上記の例では、パスワードは8e557245-73e2-4286-969a-ff57fe326336
です)BCrypt を使用してパスワードストレージを保護します
ユーザーがログアウトできるようにします
セキュリティヘッダーの統合
セキュアリクエストの HTTP Strict Transport Security [Wikipedia]
キャッシュ制御 (静的リソースのキャッシュを許可するために、アプリケーションによって後でオーバーライドできます)
クリックジャッキング [Wikipedia] の防止に役立つ X-Frame-Options の統合
次のサーブレット API メソッドと統合します。