Spring安全性:一个用于加载权限的身份验证提供者,另一个用于真正的身份验证
我的应用程序使用Spring安全性来处理身份验证。到目前为止,我使用的是基于jdbc用户服务的简单authenticaton provider,它同时执行身份验证和加载权限,并且一切正常:Spring安全性:一个用于加载权限的身份验证提供者,另一个用于真正的身份验证,spring,authentication,spring-security,Spring,Authentication,Spring Security,我的应用程序使用Spring安全性来处理身份验证。到目前为止,我使用的是基于jdbc用户服务的简单authenticaton provider,它同时执行身份验证和加载权限,并且一切正常: <authentication-manager alias="authenticationManager"> <authentication-provider> <password-encoder hash="sha" /> <
<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身份验证提供程序不执行身份验证,而只加载权限并启用下一个身份验证管理器(在我的情况下是LDAP身份验证管理器)来执行真正的身份验证?您需要实现自己的身份验证提供程序,当然,您可以重用
DaoAuthenticationProvider
和LDAP身份验证提供程序
顺便说一句:Ldap身份验证提供程序的授权部分在ldaAuthoritiesPopulator
中完成