Spring安全自定义主体bean

时间:2010-03-30 22:21:02

标签: ldap spring-security

我有一个Web应用程序,设置为使用默认的ldap服务器/身份验证管理器/身份验证提供程序/用户服务。我有另一个DAO已经完成了大部分工作(使用Spring-LDAP进行身份验证)。我的问题是我希望委托人是我自己的自定义bean类。最简单的方法是什么?

最初我正在考虑创建一个自定义身份验证提供程序,但由于默认设置完全符合我的要求,因此似乎并不需要。我想我只需要覆盖实际返回Principal bean的任何对象。这是否可行,并且能够注入安全性ldap验证器上下文?

这就是我目前设置的方式:

 <ldap-server 
  url="ldap://HOST:3268/BASEDN"
  manager-dn="FULLDN" 
  manager-password="PASS"/>

    <authentication-manager>
 <ldap-authentication-provider user-search-filter="(samaccountname={0})"/>
 <authentication-provider>
      <ldap-user-service  user-search-filter="(samaccountname={0})"/>
 </authentication-provider>

</authentication-manager> 

'ldap-user-service'是什么将Principal bean链接到SecurityContext的Authentication对象?

问题是现在我有一个第二个LDAP配置(几乎与auth配置相同)是DAO,当用户进入页面时,我只是重新查找他们的用户帐户,然后取回用户对象(如果它是SecurityContext Principal会很好)...

1 个答案:

答案 0 :(得分:1)

使用ldap-authentification-provider/@user-context-mapper-ref并实施自己的 org.springframework.security.ldap.userdetails.UserDetailsContextMapper