博客 / 詳情

返回

Spring Security 中的核心對象

Spring Security 的核心對象

適用於 Spring Security 5.4.x 以上版本.

SecurityFilterChain

根據匹配規則

Spring Security 中的過濾器鏈對象, 在沒有自定義 SecurityFilterChain 注入Ioc 容器時,在Spring Boot 自動配置類中,默認向 Ioc 容器中注入一個 defaultSecurityFilterchain 對象. 通過@ConditionalOnDefaultWebSecurity 註解實現該效果.

image-20221019160122093

默認 SecurityFilterChain 按順序執行下面的過濾器:

image-20221019200015795

FilterChainProxy

Security 的所有過濾器的 代理類, 實現Filter 接口.

HttpSecurity

用於構建過濾器鏈的對象

HttpSecurity 被 @Scope("protopye") 修飾,因此在其他 Bean 中注入 HttpSecurity Bean 時,會以該方法創建的對象作為原型,創建一個新的 HttpSecurity. 也稱為多例Bean.

在構建每個過濾器鏈 SecurityFilterChain 時,都會創建一個新的 HttpSecurity.

image-20221019213945298

WebSecurity

用於構建 FilterChainProxy Bean.

image-20221019215740317

Spring Boot 對 Security 的自動化配置

UserDetailsServiceAutoConfiguration

配置默認的用户管理器: InMemoryUserDetailsManager

詳情參考:[源碼剖析用户信息的管理者 --userdetailsmanager

user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.