【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