2013-02-11 174 views
0

我想带弹簧的安全与LDAP服务器进行身份验证,这里是我的security.xml:春天 - LDAP认证

<http auto-config="true" use-expressions="true"> 
    <intercept-url pattern="/index*" access="permitAll" /> 
    <form-login login-page="/login" default-target-url="/index" 
     authentication-success-handler-ref="loginSuccessHandler" 
     authentication-failure-handler-ref="loginFailureHandler" /> 
</http> 

<ldap-server id="ldapServer" 
    url="ldap://example.net:389/DC=example,DC=net" /> 
<authentication-manager> 
    <ldap-authentication-provider server-ref="ldapServer" 
     user-dn-pattern="CN={0}, OU=First,OU=Second,OU=Third> 
    </ldap-authentication-provider> 
</authentication-manager> 

但它抛出一个异常 - “产生的原因:使用javax。 naming.NamingException:[LDAP:错误代码1 - 000004DC:LdapErr:DSID-0C0906E8,注释:为了执行此操作,必须在连接,数据0,v1db1]上完成ful bind的成功;其余名称为'' “

出了什么问题?

+0

您没有绑定到LDAP服务器。 – duffymo 2013-02-11 14:16:59

+0

我该怎么做?用BindAuthenticator? – Shallow 2013-02-11 14:20:33

+0

https://answers.atlassian.com/questions/52559/crowd-ldap-integration – duffymo 2013-02-11 14:22:24

回答

0

检查LDAP客户端是否使用LDAPv3。 LDAPv2要求连接上的第一个操作是BIND操作。一般来说,LDAP客户端不应使用LDAPv2,现有代码应修改为不使用LDAPv2。