在使用AuthenticationManagerBuilder构建AuthenticationManager时,我们通常会遇到以下三种SecurityConfigurer :
InMemoryUserDetailsManagerConfigurer- 基于内存存储用户账号详情的安全配置器,
- 最终生成一个
DaoAuthenticationProvider,内含一个UserDetailsService InMemoryUserDetailsManager - 通常用于开发调试环境,不用于生产环境
JdbcUserDetailsManagerConfigurer- 基于关系型数据库存储用户账号详情的安全配置器
- 最终生成一个
DaoAuthenticationProvider,内含一个UserDetailsService JdbcUserDetailsManager
LdapAuthenticationProviderConfigurer- 基于
LDAP存储用户账号详情的安全配置器 - 最终生成一个
LdapAuthenticationProvider
- 基于
这里需要注意的是 :
InMemoryUserDetailsManagerConfigurer和JdbcUserDetailsManagerConfigurer有更多的相似性,最终都是生成一个DaoAuthenticationProvider,内含一个UserDetailsService;二者所面向的用户账号详情存储形式类似,所以统一抽象成UserDetailsManagerConfigurer。InMemoryUserDetailsManagerConfigurer/JdbcUserDetailsManagerConfigurer和LdapAuthenticationProviderConfigurer更不同,LdapAuthenticationProviderConfigurer所面向的用户账号存储形式是LDAP,所以单独抽象。
以上3种SecurityConfigurer在类层次关系上,如下图所示 :

本文深入解析Spring Security中三种核心配置器:InMemoryUserDetailsManagerConfigurer、JdbcUserDetailsManagerConfigurer和LdapAuthenticationProviderConfigurer,分别介绍了它们的工作原理、适用场景及在类层次上的关系。
999

被折叠的 条评论
为什么被折叠?



