我的应用程序使用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>
现在我有了新规范:
我在测试应用程序中正确配置了LDAP身份验证,它运行正常。现在我必须把它放在一起。如何让我的jdbc身份验证提供程序不执行身份验证,但只加载权限并按顺序启用下一个auth-manager(在我的情况下为LDAP身份验证管理器)进行真正的身份验证?
答案 0 :(得分:2)
您需要实现自己的身份验证提供程序,但当然可以重用DaoAuthenticationProvider
和LDAP身份验证提供程序。
BTW:Ldap身份验证提供程序的授权部分在LdapAuthoritiesPopulator
完成。