2013-05-16 134 views
0

我也是Spring安全和LDAP的新手。 试图整合使用弹簧安全的ldap服务器 也遵循了几个例子或相同的。Spring 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服务器的日志。

回答

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服务器的身份验证返回错误。所以你可以更好地看到你有错误的地方。

+0

我试过这样做,但仍然没有得到任何调试日志来检查我是否连接到LDAP服务器或有任何其他问题。 – Deepti

+0

如何使用ldap测试您的登录名?你有没有检查过你的jsp标签是否正确?你有一份由Louis E.Mauget撰写的有关基于表单身份验证的伟大文档。我认为你可以找到一个解决方案或找到解决方案的方式:http://fr.scribd.com/doc/34531398/Form-Based-Authentication –

+0

谢谢。基于表单的身份验证的JSP标签正常工作,我确信的原因这是我在Spring安全中创建了各种用户和角色,以及那些能够在应用程序中登录的用户组。我尝试使用LDAP服务器时开始出现问题。因此,现在spring安全xml看起来像这样 – Deepti