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


daydream
1 声望0 粉丝

引用和评论

0 条评论