gpt4 book ai didi

javax.命名.AuthenticationException : [LDAP: error code 49 - Invalid Credentials]

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:22:50 26 4
gpt4 key购买 nike

我是 ldap 的新手,我正在尝试我认为是一个简单的例子来测试 spring ldap 模块,其中有人已经为测试设置了一个 ldap 实例。

关于我正在使用的 ldap 实例的详细信息可以在这里找到: http://blog.stuartlewis.com/2008/07/07/test-ldap-service/comment-page-3/

我使用了 ldap 浏览器/管理工具 (Softerra LDAP Admin),我可以毫无问题地访问该目录。

当我尝试使用 java 和 spring-ldap (2.0.1) 时,我得到了上面提到的身份验证异常。在设置我自己的 ldap 实例以尝试进一步解决此问题之前,我想在这里检查一下,以防有更多经验的人指出我遗漏的明显问题。

下面是我使用的代码:

import org.springframework.ldap.core.LdapTemplate;
import org.springframework.ldap.core.support.LdapContextSource;

import java.util.List;

public class LdapTest {


public List<String> getListing() {

LdapTemplate template = getTemplate();

List<String> children = template.list("dc=testathon,dc=net");

return children;
}


private LdapTemplate getTemplate(){

LdapContextSource contextSource = new LdapContextSource();
contextSource.setUrl("ldap://ldap.testathon.net:389");
contextSource.setUserDn("cn=john");
contextSource.setPassword("john");

try {
contextSource.afterPropertiesSet();
} catch (Exception ex) {
ex.printStackTrace();
}


LdapTemplate template = new LdapTemplate();

template.setContextSource(contextSource);

return template;

}


public static void main(String[] args){


LdapTest sClient = new LdapTest();
List<String> children = sClient.getListing();

for (String child :children) {
System.out.println(child);
}

}

}

堆栈跟踪:

Exception in thread "main" org.springframework.ldap.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]; nested exception is javax.naming.AuthenticationException: [LDAP: error code 49 - Invalid Credentials]
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:191)
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:356)
at org.springframework.ldap.core.support.AbstractContextSource.doGetContext(AbstractContextSource.java:140)

最佳答案

事实证明,我只需要将所有内容都包含在专有名称中(包括组织单位)。使用

contextSource.setBase(...);

由于某种原因没有工作。进行该更正后一切正常。

contextSource.setUserDn("cn=john,ou=Users,dc=testathon,dc=net");

关于javax.命名.AuthenticationException : [LDAP: error code 49 - Invalid Credentials],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23689964/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com