【Java】Spring boot & Spring Security
Spring boot & Spring Securityについて[簡単に]
Spring boot
Springアプリケーションを迅速かつ簡単に起動できるようしたフレームワーク。
従来のSpringでは、設定ファイルやサーブレットの構築が必要で複雑でしたが、Spring bootでは自動構成(AutoConfiguration)や組み込みWebサーバー(Tomcat)を備えており、最小限の設定のみで起動できるものになります。
Spring Security
アプリケーションに認証や認可を追加するためのフレームワークになります。
- リクエストはサーブレットに到達する前にいくつもの
Security Filterを通過します - これらのFilterは
DelegationgFilterProxyの仕組みによってServeltに登録されており、SpringのApplicationContextに定義されているセキュリティ設定(SecurityFilterChainなど)を呼び出します! - DelegationgFilterProxyの内部では
FilterChainProxyが使われており、そこで定義された複数のSecurityFilter(認証フィルターなど)が順にリクエストを処理します!
Spring Securityのリクエスト処理の流れ
Clientからサーバへリクエストが送信されそれを、DelegationgFilterProxyが受取ります。DelegationgFilterProxyはそれをFilterChainProxyへ譲渡します。
FilterChainProxyは対応するSecurityFilterChainを選択してその中で定義されたSecurityFilterをdoFilter()で実行して、最終的にServletへ渡す。
という流れになっています。
ちなみに、
DelegationgFilterChain
FilterChainProxy
はクラスになります。
SecurityFilterChain
はインターフェースで実装して使用します。
SecurityFilterという用語がありますが、こちらはSecurityFilterChainの中で定義されたFilterのことを指した言い方であり実際にそのようなクラスやインターフェースが存在するわけではありません。

最後
ここまで読んでいただきありがとうございます。
まだまだ、学習の身なので間違いなどもあるかもしれません。
優しくご指摘いただけますと嬉しいです。
次回以降どこかで実際にサンプルコードも交えた使い方なども投稿できたら良いなと思ってます!
では今回はこれにて!!
Chao!!!
Discussion