Open3

SpringSecurity の SecurityFilter を知る

com4dccom4dc

Spring Security で設定される Filter の順序

以下のコードに順序定義がある

https://github.com/spring-projects/spring-security/blob/main/config/src/main/java/org/springframework/security/config/annotation/web/builders/FilterOrderRegistration.java

  • 定義を見ての通り、開始Indexが 100、 Step で 100 ずつインクリメントされている
  • 数値の低いほうが優先度が高い
  • クラスのパッケージからのフルパスのみの定義は、SpringSecurity の Core に存在しないオプションの依存によって注入される可能性のある Filter 定義
    • 依存がない状態では、Class 定義がないため、そもそも参照できないためこういう作りになってると思われ
com4dccom4dc

Form Login

Form Login の認証処理を参考にする

未認証リクエストからログインページ表示まで

https://spring.pleiades.io/spring-security/reference/servlet/authentication/passwords/form.html

  1. FilterSecurityInterceptor によって未認証リクエストを拒否( AccessDeniedException をスロー)
  2. ExceptionTranslatorFilter で認証処理を開始。 AuthenticationEntryPoint を利用して何らかのログインページへリダイレクト指示
  3. リクエスト元のクライアントがリダイレクト指示を受けて、ログインページをGET
  4. ログインページを取得/表示