Spring Security 5 核心组件
253字小于1分钟
2024-08-08
Authentication(Principal)
封装用户身份信息,顶层接口,主要实现如下
AbstractAuthenticationToken()
RememberMeAuthenticationToken rememberMe 登陆后封装的身份信息
UsernamePasswordAuthenticationToken 用户名密码登录后封装的身份信息
AuthenticationManager
身份认证器的代理,主要负责多个认证器的代理,管理多个AuthenticationProvider,主要实现如下
- ProviderManager (authenticate)
AuthenticationProvider
真正实现认证工作,多个provider受AuthenticationManager管理,主要实现如下
AbstractUserDetailsAuthenticationProvider
DaoAuthenticationProvider
RememberMeAuthenticationProvider
UserDetailsService
负责定义用户信息的来源,从不同来源加载用户信息,唯一的方法:loadUserByUsername,主要实现类:
UserDetailsManager
InMemoryUserDetailsManager
JdbcUserDetailsManager
自定义
UserDetails
定义用户身份信息,比Authentication 信息更详细,主要实现
User
一般我们自定义
SecurityContextHolder
存放和获取用户身份信息的帮助类
FilterChainProxy
Spring Securty Filter的入口,FilterChainProxy管理多个filter
AbstractHttpConfigurer
构建所有过滤器的核心组件,主要方法init()和configure(),主要实现类
FormLoginConfigurer
CorsConfigurer
CsrfConfigurer
HttpBasicConfigurer
LogoutConfigurer ...