当前位置: 首页 > 知识库问答 >
问题:

AuthenticationException:[LDAP:错误代码49-无效凭据]

裴理
2023-03-14

我是ldap新手,我尝试了一个我认为很简单的示例,用一个已经有人为测试设置的ldap实例来测试spring 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)

共有1个答案

勾安翔
2023-03-14

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

contextSource.setBase(...);

出于某种原因没有起作用。在做出更正后,一切都很好。

contextSource.setUserDn("cn=john,ou=Users,dc=testathon,dc=net");
 类似资料:
  • 我正试图将我们的应用程序集成到active Directory中。我遵循了以下入门指南:https://grails.org/wiki/acegisecurity%20plugin%20-%20ldap%20tutorial,但我得到了一个错误: [LDAP:错误代码49-无效凭据];嵌套异常是javax.naming.AuthenticationException:[LDAP:错误代码49-无效

  • 我尝试使用ldap-server,它是Microsoft Active Directory。这些“”具有以下结构: (超过1000个条目)和工人以下,有以下条目开始: 等等 我使用的框架是cuba studio。我必须申报以下财产: 但是,当我尝试使用它时,我得到了以下异常: 我还发现,例外应该是“无效凭据”的东西 https://confluence.atlassian.com/stashkb/

  • 我在网上读了很多类似的问题(堆栈溢出,其他来源),但还找不到解决方案。你看到我的配置有什么问题吗?难道我注定要使用简单的机制,让每个人的密码以明文形式四处移动吗?我不能使用CRAM-MD5和GSSAPI,因为我公司的active directory服务不支持它们。

  • 当试图通过Sonarqube连接到LDAP时,我遇到了以下错误: 2016.09.13 09:35:16调试Web[O.S.P.L.LDAPUsersProvider]用户sonartester在2016年找不到。09.13 09:35:16错误Web[O.S.S.A.RealMauthEnticator]身份验证过程中错误org.sonar.api.utils.SonareXception:无法

  • LDAP:错误代码49-80090308:ldaper:DSID-0C0903A9,注释:AcceptSecurityContext错误,数据52e,v1db1 我知道“52e”代码是用户名有效,但密码无效。我在apache studio中使用了相同的用户名和密码,我成功地建立了到LDAP的连接。 这是我的java代码 我的错误在这一行: 我不知道到底是什么导致了这个错误。

  • 我知道“52e”代码是用户名有效,但密码无效。我使用相同的用户名和密码根据Active directory验证用户及其工作状态。 以下是我的java代码: 我不知道为什么会出现这个错误。有人能帮忙吗?