|
对于最新的稳定版本,请使用 Spring Security 6.5.3! |
Dao身份验证提供者
本节将探讨如何DaoAuthenticationProvider在 Spring Security 中工作。
下图解释了AuthenticationManager在“读取用户名和密码”部分的图中。
图 1.
DaoAuthenticationProvider用法
身份验证Filter从读取用户名和密码部分传递一个UsernamePasswordAuthenticationToken到AuthenticationManager,由ProviderManager.
这ProviderManager配置为使用 AuthenticationProvider 类型DaoAuthenticationProvider.
DaoAuthenticationProvider查找UserDetails从UserDetailsService.
DaoAuthenticationProvider使用PasswordEncoder以验证UserDetails返回。
身份验证成功后,Authentication返回的 is 类型为UsernamePasswordAuthenticationToken并且有一个主体,即UserDetails由配置的UserDetailsService.
最终,返回的UsernamePasswordAuthenticationToken设置在SecurityContextHolder通过身份验证Filter.