【发布时间】:2013-05-04 08:58:29
【问题描述】:
我已将 Spring Security 配置为针对 LDAP 服务器进行身份验证。
<security:authentication-manager >
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
</security:authentication-manager>
身份验证后,我想从本地数据库为同一用户加载角色。如何使用“ldap-authentication-provider”加载本地数据库角色?
如果我如下添加第二个身份验证提供程序:
<security:authentication-manager >
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
<security:authentication-provider ref="daoAuthenticationProvider" />
</security:authentication-manager>
daoAuthenticationProvider 添加了,但是当第一个身份验证提供程序对用户进行身份验证时,Spring 不使用第二个提供程序。仅当第一个身份验证提供程序未能通过身份验证时,它才会进入列表中的下一个。
所以基本上看起来我们必须自定义
<security:ldap-authentication-provider user-dn-pattern="uid={0}" />
从本地数据库加载角色。
有什么建议吗?这应该如何实现?
【问题讨论】:
标签: spring spring-security roles