0

我正在尝试了解 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>
4

1 回答 1

3

没错,您将获得DaoAuthenticationProvider上述配置。文档<authentication-provider>明确指出:

除非与ref属性一起使用,否则此元素是配置DaoAuthenticationProvider.

<authentication-provider>标签被解析,它AuthenticationProviderBeanDefinitionParser总是注册一个DaoAuthenticationProvider注入指定的UserDetailsService和其他协作者(passwordEncoder、saltSource 等)。

于 2013-05-01T17:16:51.380 回答