尝试在活动目录中执行LDAP查找时出错

时间:2012-03-08 10:36:24

标签: java authentication java-ee active-directory ldap

我正在尝试使用java在本地活动目录中查找用户 当我尝试执行代码时,出现以下错误:

错误:

  

查找失败:javax.naming.NamingException:[LDAP:错误代码1 -   000004DC:Lda pErr:DSID-0C0906DC,评论:为了执行此操作   操作成功必须在连接上完成。   data 0,v1db1];剩余名称:'CN = John Doe,OU = Accounts'

有谁能告诉我我做错了什么?

我的代码:

import java.util.Hashtable;    
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import javax.naming.ldap.LdapContext;

/**
 * Demonstrates how to look up an object.
 * 
 * usage: java Lookup
 */
class Lookup {
    public static void main(String[] args) {

        // Set up the environment for creating the initial context
        Hashtable env = new Hashtable(11);
        env.put(Context.INITIAL_CONTEXT_FACTORY,
                "com.sun.jndi.ldap.LdapCtxFactory");
        env.put(Context.PROVIDER_URL,
                "ldap://localhost:389/DC=PORTAL-UAT,DC=COMPANY,DC=COM");

        try {
            // Create the initial context
            Context ctx = new InitialContext(env);

            // Perform lookup and cast to target type
            LdapContext b = (LdapContext) ctx
                    .lookup("CN=John Doe,OU=Accounts");

            System.out.println(b);

            // Close the context
            ctx.close();
        } catch (NamingException e) {
            System.out.println("Lookup failed: " + e);
        }
    }
}

2 个答案:

答案 0 :(得分:4)

由于错误消息指出您必须执行绑定操作,即登录到AD。以下是Oracle的LDAP Authentication教程。

答案 1 :(得分:3)

编码器应该使用ldapsearch命令行实用程序来验证连接是否可以 确定绑定DN的凭据是正确的。这种低级别的方法会 确保可以从客户端系统连接到目标目录服务器。这个 是一种基本的故障排除技术

有关详细信息,请参阅LDAP: Programming Practices