LDAP 登录凭据无效
LDAP invalid login credentials
我在 ubuntu 12.04 系统上安装了 sldap。https://help.ubuntu.com/community/OpenLDAPServer
我可以从 terminal.e.g 添加 /search 记录到 lsdap。我可以添加ldif文件。
ldapadd -x -D cn=admin,dc=test,dc=com -W -f ldap-add.ldif
它问我密码。我输入了 pass000,它添加了新的 entry.its 工作正常。我可以从终端添加搜索记录。现在我从我的 spring 应用程序中尝试了它。我将依赖项 ldap-core 添加到我的 pom 中。我设置了 bean 等。一切都很好,除了它在有效凭证中给我错误虽然我输入的与我输入时输入的相同来自终端的 ldif 文件。我的 bean 配置是
<!-- ldap template -->
<ldap:context-source id="contextSource" url="ldap://localhost:389"
base="dc=test,dc=com" username="cn=admin" password="pass000" />
<ldap:ldap-template id="ldapTemplate"
context-source-ref="contextSource" />
<bean id="personDao" class="com.cheasyy.cofinding.dao.PersonDaoImpl">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
报错
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:205)
com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:266)
root cause
org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)
org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:356)
org.springframework.ldap.core.support.AbstractContextSource.doGetContext(AbstractContextSource.java:140)
如果使用相同的凭据,我可以从终端添加 ldif 文件,那么为什么不使用我的 spring 应用程序?他们的配置中是否缺少任何内容?
'username' DN需要是admin用户的完整DN,包括base;在你的情况下:
<ldap:context-source id="contextSource" url="ldap://localhost:389"
base="dc=test,dc=com" username="cn=admin,dc=test,dc=com" password="pass000" />
管理员用户通常位于 LDAP 树的不同部分,而不是您希望从中发起操作的基本 DN。
我在 ubuntu 12.04 系统上安装了 sldap。https://help.ubuntu.com/community/OpenLDAPServer 我可以从 terminal.e.g 添加 /search 记录到 lsdap。我可以添加ldif文件。
ldapadd -x -D cn=admin,dc=test,dc=com -W -f ldap-add.ldif
它问我密码。我输入了 pass000,它添加了新的 entry.its 工作正常。我可以从终端添加搜索记录。现在我从我的 spring 应用程序中尝试了它。我将依赖项 ldap-core 添加到我的 pom 中。我设置了 bean 等。一切都很好,除了它在有效凭证中给我错误虽然我输入的与我输入时输入的相同来自终端的 ldif 文件。我的 bean 配置是
<!-- ldap template -->
<ldap:context-source id="contextSource" url="ldap://localhost:389"
base="dc=test,dc=com" username="cn=admin" password="pass000" />
<ldap:ldap-template id="ldapTemplate"
context-source-ref="contextSource" />
<bean id="personDao" class="com.cheasyy.cofinding.dao.PersonDaoImpl">
<property name="ldapTemplate" ref="ldapTemplate" />
</bean>
报错
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:778)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:205)
com.thetransactioncompany.cors.CORSFilter.doFilter(CORSFilter.java:266)
root cause
org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)
org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:356)
org.springframework.ldap.core.support.AbstractContextSource.doGetContext(AbstractContextSource.java:140)
如果使用相同的凭据,我可以从终端添加 ldif 文件,那么为什么不使用我的 spring 应用程序?他们的配置中是否缺少任何内容?
'username' DN需要是admin用户的完整DN,包括base;在你的情况下:
<ldap:context-source id="contextSource" url="ldap://localhost:389"
base="dc=test,dc=com" username="cn=admin,dc=test,dc=com" password="pass000" />
管理员用户通常位于 LDAP 树的不同部分,而不是您希望从中发起操作的基本 DN。