【问题标题】:Spring Security - Active Directory returns 49 - 775 (User account locked) for valid (unlocked) usersSpring Security - Active Directory 为有效(未锁定)用户返回 49 - 775(用户帐户锁定)
【发布时间】: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


    【解决方案1】:

    解决方案非常简单。这不是技术问题,而是人的问题。在部署之前,WAR 文件中的 spring 上下文被一个匿名的好心人修改为指向 Active Directory 的测试版本。属性文件是一样的,指向prod AD,但是上下文配置XML本身被改变了……有人很有幽默感……

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-09
      相关资源
      最近更新 更多