У меня настроены AD DS и AD LDS в Windows 2012 Server.
Требуется запросить LDAP с использованием Java.
Я пробовал это:
Hashtable env = new Hashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://55.22.44.22:53358");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
"CN=ecode,CN=Users,DC=ecode,DC=com");
env.put(Context.SECURITY_PRINCIPAL, "ecode@ecode.com");
env.put(Context.SECURITY_CREDENTIALS, "ddadadad");
DirContext context = new InitialDirContext(env);
Я получаю следующую ошибку
Исключение в потоке "main" javax.naming.AuthenticationException: [LDAP: код ошибки 49 - 8009030C: LdapErr: DSID-0C09042F, комментарий: ошибка AcceptSecurityContext, данные 2030,v2580�]
в com.sun.jndi.ldap.LdapCtx.mapErrorCode (LdapCtx.java:3154)
в com.sun.jndi.ldap.LdapCtx.processReturnCode (LdapCtx.java:3100) * 1013на com.sun.jndi.ldap.LdapCtx.processReturnCode (LdapCtx.java:2886)
на com.sun.jndi.ldap.LdapCtx.connect (LdapCtx.java:2800) на com.sun.jndi.ldap.LdapCtx. (LdapCtx.java:319) по адресу com.sun.jndi.ldap.LdapCtxFactory.getUsingURL (LdapCtxFactory.java:192) по адресу com.sun.jndi.ldap.LdapCtxFactory.getUsingURLt.sun.jndi.ldap.LdapCtxFactory.getLdapCtxInstance (LdapCtxFactory.java:153) в com.sun.jndi.ldap.LdapCtxFactory.getInitialContext (LdapCtxFactory.java:83)
Я знаю, что код 49 это LDAP_INVALID_CREDENTIALS
.Я не уверен, что передать в параметре SECURITY_AUTHENTICATION
.
Я попытался ввести в качестве параметра SECURITY_AUTHENTICATION
:
CN=ecode,CN=Users,DC=ecode,DC=com
ecode@ecode.com
В Powershell при попытке
dsquery user -name ecode
Я получаю этот вывод
CN=ecode,CN=Users,DC=ecode,DC=com