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

Java中的LDAP身份验证

单淳
2023-03-14

我需要连接到LDAP服务器,但出现以下错误:

javax。命名。AuthenticationException:[LDAP:错误代码49-80090308:LDAPPER:DSID-0C09034,注释:AcceptSecurityContext错误,数据525,向量

用户名和密码正确,我尝试设置相同的用户并传入另一个用编写的应用程序。NET,它在那里工作,但在Java中,我收到了错误消息。

我的代码是:

@RequestMapping(method=RequestMethod.GET)公共ModelAndView登录(ModelMap模型){

    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    env.put(Context.PROVIDER_URL, "ldap://subdomain.domain.com:389");
    env.put(Context.SECURITY_PRINCIPAL, "uid=username,DC=subdomain,DC=domain,DC=com");
    env.put(Context.SECURITY_CREDENTIALS, "password");


    InitialDirContext context;

    try 
    {
        context = new InitialDirContext(env);
    } 

    catch (NamingException e1) 
    {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

我会请有工作代码的人在这里发布它。

谢谢你!!

共有2个答案

颜哲彦
2023-03-14

如果DN正确,DN将正常工作。

错误代码49-。。。数据525表示LDAP\u NO\u这样的对象(条目不存在。)

我怀疑“uid=username, DC=subdomain, DC=domain, DC=com”是一个好的DN。

寿伟
2023-03-14
  1. Active Directory不适用于UID
  2. 不要提供DN作为用户名,而是提供常规用户主体名称来记录它
 类似资料:
  • 问题内容: 我试图让我的自定义Java应用程序使用我们的Active Directory服务器进行身份验证,但由于某种原因我无法使其正常工作。谁能看到为什么呢?这是我的方法如下: 结果: 问题答案: 你尝试过这种方式吗? 也更换 与

  • 我使用Presto Cli测试ldap,下面是以下命令: 它不要求密码,我能够连接到Presto集群,并能够运行查询。为什么LDAP身份验证对此没有任何帮助?

  • 我正在尝试为我的Spring MVC应用程序集成LDAP身份验证。如果我将contextSource设置为虚拟用户DN和相应的密码,则用户可以成功登录。我想做的是能够在不使用虚拟用户的情况下绑定ldap连接。 下面是工作原理的代码- 现在我已经尝试删除硬编码的userDn和密码(更新init())- 应用程序启动正常,但我遇到了一个例外——“必须在连接上成功绑定”。 Stacktrace- [UP

  • 我有一个asp。net(C#)设置为使用LDAP进行身份验证。一切正常,我可以和我们目录中的任何用户一起登录。问题是,我需要将某些页面限制为特定组中的人。我正在使用登录查看帐户文件夹的方法。 我的网站设计很简单,它有三个页面,一个供所有人查看(账户文件夹之外),另外两个需要身份验证。我希望一个组可以访问两个网页,另一个组只能访问其中一个网页。 我试过: 但不管我的用户不在该组中。我有一个LDAP浏

  • PS:我知道我可以使用一个额外的基于sAMAccountName的LDAP查询来获得用户的完整LDAP帐户,但是这将需要一个不必要的第二个LDAP查询,并且还需要将LDAP配置从Weblogic复制到我的应用程序中。

  • 我很难让LDAP安全配置与xml配置一起工作。