我正在尝试使用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);
}
}
}
答案 0 :(得分:4)
由于错误消息指出您必须执行绑定操作,即登录到AD。以下是Oracle的LDAP Authentication教程。
答案 1 :(得分:3)
编码器应该使用ldapsearch
命令行实用程序来验证连接是否可以
确定绑定DN的凭据是正确的。这种低级别的方法会
确保可以从客户端系统连接到目标目录服务器。这个
是一种基本的故障排除技术
有关详细信息,请参阅LDAP: Programming Practices