Skip to content
Playground

Spring Security

セッションとフラッシュメッセージ では、セッションにログイン状態を持つログインを手書きしました。本番のアプリの認証・認可をまとめて引き受けるのが Spring Security です。

12 章の手書きログインは、セッションにログイン状態を持つ最小限のものでした。本番のアプリでは、より広い範囲の認証・認可が必要になります。

本番のアプリでは、次のような認証・認可が求められます。

  • 認証(誰であるか)と認可(どの操作を許すか)を、パス・HTTP メソッド・利用者の役割で体系的に管理する
  • CSRF 対策(他サイトからの不正なフォーム送信の防止)
  • セッション固定化対策
  • パスワードの安全な保存と照合(ハッシュ化、強度の管理)
  • 未ログインで保護ページにアクセスしたとき、ログイン後に元のページへ戻す

これらをまとめて提供するのが Spring Security です。spring-boot-starter-security を追加すると、リクエストはコントローラーに届く前にセキュリティのフィルターを通り、宣言したルールに従って許可・拒否されます。HandlerInterceptor で手書きした「未ログインならリダイレクト」も、パスと HTTP メソッドの組み合わせ・利用者の役割を含めて、設定で宣言できます。