Spring Security,Kerberos扩展和AD

时间:2013-04-23 09:34:45

标签: java active-directory spring-security spring-security-kerberos

我正在尝试在我的项目中使用Kerberos身份验证。这是我公司的一项内部服务,我想对用户进行身份验证,并从我们的Active Directory中检索用户组。 为此,我使用的是Spring Security,Kerberos扩展和我们公司的AD。

问题:我可以使用Kerberos进行身份验证,但我们在AD上的域名是“WAN.CORP.COM”。所以我用username@WAN.CORP.COM获取我的用户,并且在AD上没有我可以询问的过滤器(userPrincipalName就像username@corp.com)。

我的security.xml包含:

<sec:ldap-user-service id="ldapUserService" server-ref="ldapCorp" user-search-filter="(userPrincipalName={0})" />
<sec:ldap-server id="ldapCorp" url="ldap://ldap.wan.corp.com:389/DC=wan,DC=corp,DC=com" manager-dn="CN=ldap read,OU=CORP,DC=wan,DC=corp,DC=com" manager-password="pass" />

但Spring Security发送异常,因为它无法检索user@WAN.CORP.COM ......

任何人都可以帮助我吗?我想直接通过Spring Security来实现,如果没有,我想我可以在DummyUserDetailsS​​ervice中获取信息,我是对的吗?

非常感谢,对不起我糟糕的英语......

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以提供自己的UserDetailsS​​ervice实现,并将LdapUserDetailsS​​ervice注入其中。

在loadUserByUsername方法中,您可以修改用户名,然后使用修改后的用户名调用LdapUserDetailsS​​ervice的loadUserByUsername。