用户无法使用LDAP身份验证登录Web服务

时间:2016-03-29 18:43:37

标签: java spring-security ldap

周末(DST更改)之后,我正在处理的网站的用户无法再登录。用户继续获取登录弹出窗口以输入他们的凭据,并且在ldap的error_log我只能看到以下错误

[Tue Mar 29 20:21:04.296466 2016] [auth_basic:error] [pid 5324] [client <<ip>>:58258] AH01617: user username: authentication failure for "/troubleshooting-webapp/": Password Mismatch

虽然,当我使用Apache Directory Studio验证密码时,输入的密码是正确的。

(大多数)配置文件的概述可以在下面找到

的httpd.conf

<Location "/troubleshooting-webapp">                                                                                      
  AuthType Basic                                                                                                          
  AuthBasicProvider ldap                                                                                                  
  AuthName "Web Site DEV: Login with User ID "                                                                    
  AuthLDAPURL "ldap://127.0.0.1:10389/ou=people,dc=company,dc=com?uid?sub?(objectClass=*)"                                
  AuthLDAPBindDN        "uid=admin,ou=system"                                                                             
  AuthLDAPBindPassword  "adminpwd"                                                                                         
  Require valid-user                                                                                                      
</Location>                                                                                                               

的applicationContext.xml

<bean id="contextSource"
    class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <constructor-arg value="${prop:troubleshooting.ldap.server.path}" />
    <property name="userDn" value="${prop:troubleshooting.ldap.server.bindDN}" />
    <property name="password" value="${prop:troubleshooting.ldap.server.bindPwd}" />
</bean>
<bean id="contextSourceGroup"
    class="org.springframework.security.ldap.DefaultSpringSecurityContextSource">
    <constructor-arg value="${prop:troubleshooting.ldap.server.pathGroup}" />
    <property name="anonymousReadOnly" value="${prop:troubleshooting.ldap.server.anonymous}" />
    <property name="userDn" value="${prop:troubleshooting.ldap.server.bindDN}" />
    <property name="password" value="${prop:troubleshooting.ldap.server.bindPwd}" />
</bean>

ApplicationContext.properties

troubleshooting.ldap.server.path=ldap://ldap.server.url:10389/dc=company,dc=com
troubleshooting.ldap.server.pathGroup=ldap://ldap.server.url:10389/dc=company,dc=com
troubleshooting.ldap.server.anonymous=true
troubleshooting.ldap.server.bindDN=uid=admin,ou=system
troubleshooting.ldap.server.bindPwd=adminpwd
troubleshooting.ldap.server.searchBase=ou=people
troubleshooting.ldap.server.groupBase=ou=groups

我一直在玩一些参数,奇怪的是,DN绑定到什么并不重要。如果它存在与否则无关紧要,服务器将启动并且错误将显示在日志中。

此LDAP服务器的错误是唯一的。当我切换到集成服务器的LDAP时,一切都按预期工作。

关于从何处开始进行故障排除的任何想法?

1 个答案:

答案 0 :(得分:0)

我还没有找到导致此问题的原因,但重新安装ApacheDS服务器解决了这个问题。