2017-01-19 15 views
0

В моей организации есть сеть CORP, где у нас есть сервер LDAP, и я могу легко подключить этот сервер через java-программу, указав имя пользователя (основного) &. ниже мой код Java для подключения к серверу LDAP.Настройка LDAP сервера каталогов Apache

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); 
env.put(Context.PROVIDER_URL, "ldap://corp.testorg.com:10389");  
env.put(Context.SECURITY_AUTHENTICATION, "simple"); 
env.put(Context.SECURITY_PRINCIPAL, "CORP\\username"); 
env.put(Context.SECURITY_CREDENTIALS, "password"); 
try 
{ 
DirContext ctx = new InitialDirContext(env); 
System.out.println("connected"); 
} 

Но моя проблема заключается в том, что я создал свой собственный сервер LDAP через апач DS на моей локальной машине, а затем пытаюсь соединиться с локальным сервером LDAP через то же программу, то я должен предоставить базовый дп с именем как ниже

put(Context.SECURITY_PRINCIPAL, "cn=username,ou=users,o=test") 

Почему я должен предоставить базу dn с именем пользователя Я не понимаю. Мне не хватает какой-либо конфигурации на сервере LDAP, пожалуйста, дайте мне знать.

ответ

0

Поддерживаемые форматы SECURITY_PRINCIPAL очень сильно зависят от поставщика услуг. Обычно ожидается отличительное имя пользователя, но Active Directory supports a couple of additional formats.

+0

Хорошо. Таким образом, CORP предоставляется поставщиком услуг. но что они сделали такую ​​настройку, чтобы я мог сделать это на моем локальном сервере LDAP, и мне не нужно было передавать базовое DN с именем пользователя в SECURITY_PRINCIPAL –

 Смежные вопросы

  • Нет связанных вопросов^_^