Spring Security Config : 被AuthenticationManagerBuilder的各种安全配置器

在使用AuthenticationManagerBuilder构建AuthenticationManager时,我们通常会遇到以下三种SecurityConfigurer

  • InMemoryUserDetailsManagerConfigurer
    • 基于内存存储用户账号详情的安全配置器,
    • 最终生成一个DaoAuthenticationProvider,内含一个UserDetailsService InMemoryUserDetailsManager
    • 通常用于开发调试环境,不用于生产环境
  • JdbcUserDetailsManagerConfigurer
    • 基于关系型数据库存储用户账号详情的安全配置器
    • 最终生成一个DaoAuthenticationProvider,内含一个UserDetailsService JdbcUserDetailsManager
  • LdapAuthenticationProviderConfigurer
    • 基于 LDAP存储用户账号详情的安全配置器
    • 最终生成一个LdapAuthenticationProvider

这里需要注意的是 :

  • InMemoryUserDetailsManagerConfigurerJdbcUserDetailsManagerConfigurer有更多的相似性,最终都是生成一个DaoAuthenticationProvider,内含一个UserDetailsService;二者所面向的用户账号详情存储形式类似,所以统一抽象成UserDetailsManagerConfigurer
  • InMemoryUserDetailsManagerConfigurer/JdbcUserDetailsManagerConfigurerLdapAuthenticationProviderConfigurer更不同,LdapAuthenticationProviderConfigurer所面向的用户账号存储形式是LDAP,所以单独抽象。

以上3种SecurityConfigurer在类层次关系上,如下图所示 :

Spring Security Config : 被AuthenticationManagerBuilder的各种安全配置器

上一篇:SpringSecurity(十):全局AuthenticationManager与局部AuthenticationManager


下一篇:mybatis工作流程