我试图了解Spring(3.1)中的身份验证提供程序,我对这里发生的事情有疑问。我知道我使用的命名空间可以更方便地访问安全模块中的功能和配置。
当我有以下标签时,我会得到一个提供程序管理器,其中包含一个身份验证提供程序列表。现在,当我查看AuthenticationProvider
界面时,我想知道我得到了哪种提供商?我是对的,我得到DaoAuthenticationProvider
?我是否可以获得其他提供商以及如何找到要注册的提供商(如果这样做的话)?
<security:authentication-manager>
<security:authentication-provider>
<security:jdbc-user-service data-source-ref="dataSource" />
</security:authentication-provider>
</security:authentication-manager>
答案 0 :(得分:3)
这是正确的,您将获得具有上述配置的DaoAuthenticationProvider
。 documentation for <authentication-provider>
明确指出:
除非与
ref
属性一起使用,否则此元素是配置DaoAuthenticationProvider
的简写。
<authentication-provider>
标记由AuthenticationProviderBeanDefinitionParser
解析,UserDetailsService
总是registers a DaoAuthenticationProvider
注入指定的{{1}}和其他协作者(passwordEncoder,saltSource等)。