我有一个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会很好)...
答案 0 :(得分:1)
使用ldap-authentification-provider/@user-context-mapper-ref
并实施自己的
org.springframework.security.ldap.userdetails.UserDetailsContextMapper
。