【问题标题】:How can set New Security Credential for ldap Authentication in Java Code如何在 Java 代码中为 ldap 身份验证设置新的安全凭证
【发布时间】:2014-11-17 05:41:21
【问题描述】:

Hashtable env = new Hashtable(11);create environment env.put(上下文.INITIAL_CONTEXT_FACTORY, “com.sun.jndi.ldap.LdapCtxFactory”); env.put(Context.PROVIDER_URL, "ldap://localhost:10389/ou=system");url Declaration env.put(Context.SECURITY_CREDENTIALS, "秘密"); env.put(Context.SECURITY_AUTHENTICATION, "简单"); env.put(Context.SECURITY_PRINCIPAL, "ou=121,ousystem");For this is Domain env.put(Context.SECURITY_CREDENTIALS, "secret");set new credential // 搜索和检索 DN。

     DirContext ctx = null;
    NamingEnumeration results = null;
    try {
        ctx = new InitialDirContext(env);`cant create obj here`
        SearchControls controls = new SearchControls();
     // Authenticate
          ldap = new InitialLdapContext(env, null);
           } catch (AuthenticationException ae) {
     ae.printStackTrace();
      } catch (NamingException e) {
     e.printStackTrace();
 }

错误:javax.naming.NameNotFoundException:when creating obj for context

【问题讨论】:

    标签: java security authentication ldap credentials


    【解决方案1】:

    您的 Context.SECURITY_PRINCIPAL 似乎不正确,它不能是 OU(组织单位),而是 CN、UID 等。在您的情况下,它可以是 cn=121,ou=ousystem。你需要检查一下。

    如果您有 LDAP 浏览器,例如 Apache Directory Studio 或 Softera LDAP,请尝试使用连接详细信息连接到您的 LDAP 服务器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2013-03-15
      • 1970-01-01
      • 1970-01-01
      • 2012-12-13
      • 2012-02-21
      • 2016-10-03
      相关资源
      最近更新 更多