我遇到了一個完整的謎。我有一個基於Spring的Web應用程序,它根據Active Directory對用戶進行身份驗證。在一個只有一臺服務器(PROD,還有什麼地方,對吧?),它無法調取用戶信息:彈簧安全 - 活動目錄返回49 - 775(用戶帳戶鎖定)的有效(解鎖)用戶
產生的原因: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 的Tomcat 6 的Java 09年7月1日 春季安全4.0.3.RELEASE