В моей организации есть сеть 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, пожалуйста, дайте мне знать.
Хорошо. Таким образом, CORP предоставляется поставщиком услуг. но что они сделали такую настройку, чтобы я мог сделать это на моем локальном сервере LDAP, и мне не нужно было передавать базовое DN с именем пользователя в SECURITY_PRINCIPAL –