DaoAuthenticationProvider
本站(springdoc.cn)中的内容来源于 spring.io ,原始版权归属于 spring.io。由 springdoc.cn 进行翻译,整理。可供个人学习、研究,未经许可,不得进行任何转载、商用或与之相关的行为。 商标声明:Spring 是 Pivotal Software, Inc. 在美国以及其他国家的商标。 |
DaoAuthenticationProvider
是一个 AuthenticationProvider
的实现,它使用 UserDetailsService
和 PasswordEncoder
来验证一个用户名和密码。
本节研究了 DaoAuthenticationProvider
在Spring Security中的工作原理。下图以 读取用户名和密码 部分的示例图解释了 AuthenticationManager
的工作原理。
DaoAuthenticationProvider
Usage 读取用户名和密码部分的认证 Filter
将 UsernamePasswordAuthenticationToken
传递给 AuthenticationManager
,它由 ProviderManager
实现。
ProviderManager
被配置为使用一个 DaoAuthenticationProvider
类型的 AuthenticationProvider。
DaoAuthenticationProvider
从 UserDetailsService
中查找 UserDetails
。
DaoAuthenticationProvider
使用 PasswordEncoder
来验证上一步返回的 UserDetails
上的密码。
当认证成功时,返回的 Authentication
是 UsernamePasswordAuthenticationToken
类型,并且有一个委托人(principal)是由配置的 UserDetailsService
返回的 UserDetails
。最终,返回的 UsernamePasswordAuthenticationToken
被认证 Filter 设置在 SecurityContextHolder
上。