0

我也是 Spring Security 和 LDAP 的新手。尝试使用 spring security 集成 ldap 服务器还遵循了几个示例或相同的示例。

安全 xml 看起来像这样

<beans:beans xmlns:="http://www.springframework.org/schema/security"
             xmlns:beans="http://www.springframework.org/schema/beans" 
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
    http://www.springframework.org/schema/security
    http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <http auto-config="true" >              
        <intercept-url pattern="/jsp/login.htm" />               
        <intercept-url pattern="/jsp/home*" />
        <intercept-url pattern="/jsp/search*"  />
        <intercept-url pattern="/jsp/errorSearch*"/>
        <form-login login-page="/jsp/login.htm" default-target-url="/jsp/home.htm" login-processing-url="/jsp/j_spring_security_check"/>            
        <logout logout-url="/jsp/j_spring_security_logout" logout-success-url="/jsp/login.htm" />
    </http>


    <ldap-server 
        url="ldap://honts0102.homeoffice.test.com/DC=homeoffice,DC=com" 
        manager-dn="CN=gec-jirasvc,OU=GEC_Service Accounts,OU=Users,OU=GEC,DC=homeoffice,DC=com" 
        manager-password="userpasswd"/>
    <authentication-manager>
        <ldap-authentication-provider `enter code here`
        user-search-filter="(sAMAccountName={0})"
           user-search-base="OU=GEC_Service Accounts,OU=Users,OU=GEC,DC=homeoffice,DC=com">
        </ldap-authentication-provider>
    </authentication-manager>


</beans:beans>

我在这里使用的经理 dn 是一个服务帐户。后端未收到任何错误,但登录页面未对用户进行身份验证。如果有人能帮助我解决这个问题并为我提供一些至少可以检查/设置 LDAP 服务器日志的方法,我将不胜感激。

4

1 回答 1

0

我有同样的“错误”,我用这个简单的配置解决了它:

<bean id="ldapActiveDirectoryAuthProvider" class="org.springframework.security.ldap.authentication.ad.ActiveDirectoryLdapAuthenticationProvider">
    <constructor-arg value="homeoffice.com" />
    <constructor-arg value="ldap://honts0102.homeoffice.test.com:389/" />
    <property name="useAuthenticationRequestCredentials" value="true" />
    <property name="convertSubErrorCodesToExceptions" value="true" />
</bean>

<authentication-manager>
    <authentication-provider ref="ldapActiveDirectoryAuthProvider" />
</authentication-manager>

...

与财产:

property name="convertSubErrorCodesToExceptions" value="true" />

当使用 ldap 服务器的身份验证返回错误时,Spring Security 将引发异常。所以你可以更好地看到你有错误的地方。

于 2013-05-16T15:57:29.630 回答