🔑

【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を選択してその中で定義されたSecurityFilterdoFilter()で実行して、最終的にServletへ渡す。
という流れになっています。

ちなみに、
DelegationgFilterChain
FilterChainProxy
はクラスになります。
SecurityFilterChain
はインターフェースで実装して使用します。

SecurityFilterという用語がありますが、こちらはSecurityFilterChainの中で定義されたFilterのことを指した言い方であり実際にそのようなクラスやインターフェースが存在するわけではありません。

最後

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

では今回はこれにて!!
Chao!!!

Discussion