Active Directory (AD LDS/ADAM) からすべてのユーザーのリストを取得しようとしていますが、次のエラーが引き続き発生します。
検索に失敗しました: javax.naming.NameNotFoundException: [LDAP: エラー コード 32 - 000020 8D: NameErr: DSID-031522C9、問題 2001 (NO_OBJECT)、データ 0、最適一致: 'DC=PORTAL,DC=COMPANY,DC=BE '
私のコード:
public static void main(String[] args) {
try {
DirContext ctx = new InitialDirContext(Environment.getEnvironment());
NamingEnumeration enumeration = ctx
.list("OU=ACCOUNTS,DC=PORTAL,DC=COMPANY,DC=BE");
while (enumeration.hasMore()) {
NameClassPair nc = (NameClassPair) enumeration.next();
System.out.println(enumeration);
}
// Close the context when we're done
ctx.close();
} catch (AuthenticationException e) {
System.out.println("Invalid credentials");
} catch (NamingException e) {
System.out.println("Lookup failed: " + e);
}
}
編集:接続の詳細を追加
public static Hashtable getEnvironment() {
// Set up the environment for creating the initial context
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL,
"CN=Admin,OU=System Accounts,DC=PORTAL,DC=COMPANY,DC=BE");
env.put(Context.SECURITY_CREDENTIALS, "Pass123");
env.put(Context.REFERRAL, "follow");
return env;
}