1

我正在尝试在我的项目中使用 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 中获取信息,对吗?

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

4

2 回答 2

0

Spring security 3.1 已经实现了 LDAP / AD auth。

在这里看到它:http: //static.springsource.org/spring-security/site/docs/3.1.x/reference/ldap.html#d0e6795 http://javarevisited.blogspot.com/2011/11/ldap-authentication -active-directory.html

于 2013-06-07T11:18:56.803 回答
0

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

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

于 2013-07-18T12:53:01.180 回答