【发布时间】:2016-04-03 12:40:20
【问题描述】:
我遇到了一个完全的谜团。我有一个基于 Spring 的 Web 应用程序,它针对 Active Directory 对用户进行身份验证。在一台且只有一台服务器上(PROD,还有其他地方,对吗?),它无法提取用户信息:
原因:javax.naming.AuthenticationException:[LDAP:错误代码 49 - 80090308:LdapErr:DSID-0C0903A9,注释:AcceptSecurityContext 错误,数据 775,v1db1\x00] 在 com.sun.jndi.ldap.LdapCtx.mapErrorCode(LdapCtx.java:3087)
虽然看起来很像,但显然不是帐户问题。我使用自己的凭据,它们适用于桌面登录 (SSO) 以及在不同环境中运行的该应用程序的所有其他实例。据我所知,Spring AD 也配置得当:
<bean id="authProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
<constructor-arg value="${ldap.domain}" />
<constructor-arg value="${ldap.providerUrl}" />
<constructor-arg value="${ldap.rootDn}" />
<property name="authoritiesMapper" ref="authMapper"/>
</bean>
<bean id="authMapper" class="ca.myapp.spring.UserContextMapper">
<property name="adminGroupsAsString" value="${ldap.adminGroups}"/>
<property name="userGroupsAsString" value="${ldap.userGroups}"/>
</bean>
所以在我看来,问题出在那个盒子上。过去有人见过这种行为吗?非常感谢任何帮助。
我什至最终使用来自 PROD 的相同 ISO 映像构建了一个 VM,以验证我是否可以重现该错误。它就像魅力一样 - 我能够登录并且没有身份验证异常......看起来这是一个特定的盒子(PROD),我在其中得到有效(解锁)用户的“用户锁定”错误。
如果需要,这里是版本信息: RHEL 6.3 雄猫 6 Java 1.7.09 Spring Security 4.0.3.RELEASE
【问题讨论】:
标签: java spring active-directory ldap