Spring Security:一个用于加载权限和其他用于实际身份验证的身份验证提供程

时间:2011-10-25 13:21:34

标签: spring authentication spring-security

我的应用程序使用Spring Security来处理身份验证。到目前为止,我使用的是基于jdbc-user-service的简单的authenticaton提供程序,它同时执行身份验证和加载权限,并且一切正常:

<authentication-manager alias="authenticationManager">
    <authentication-provider>
        <password-encoder hash="sha" />
        <jdbc-user-service data-source-ref="dataSource"
            authorities-by-username-query="select t1.login, t2.USERROLES from USER as t1, USERROLES as t2 where t1.ID=t2.User_ID and t1.login= ?"
            users-by-username-query="select login,password,enabled from USER where login = ?" />
    </authentication-provider>
</authentication-manager>

现在我有了新规范:

  1. 应该像以前一样从数据库加载权限
  2. 应使用LDAP
  3. 进行身份验证

    我在测试应用程序中正确配置了LDAP身份验证,它运行正常。现在我必须把它放在一起。如何让我的jdbc身份验证提供程序不执行身份验证,但只加载权限并按顺序启用下一个auth-manager(在我的情况下为LDAP身份验证管理器)进行真正的身份验证?

1 个答案:

答案 0 :(得分:2)

您需要实现自己的身份验证提供程序,但当然可以重用DaoAuthenticationProvider和LDAP身份验证提供程序。

BTW:Ldap身份验证提供程序的授权部分在LdapAuthoritiesPopulator完成。