powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / LDAP
6 сообщений из 6, страница 1 из 1
LDAP
    #39753359
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день!
Столкнулся с трудностями в работе с LDAP-каталогом. Не могу получить группы пользователей из Java.
В Apache Directory Studio все работает.

В каталоге и у группы, и у пользователя есть атрибут CN. То есть в Apache Directory Studio я могу задать фильтр типа (cn=Иванов Иван Иванович) или (cn=Моя группа) по одному и тому же SearchBase и в обоих случаях получить нужный мне результат.

Из Java делаю следующим образом:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
Hashtable<String, Object> env = new Hashtable<String, Object>();
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, ldapUsername);
env.put(Context.SECURITY_CREDENTIALS, ldapPassword);
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, ldapAdServer);
env.put("java.naming.ldap.attributes.binary", "objectSID objectGUID");
InitialDirContext ctx = new InitialDirContext(env);
        
String searchFilter = "(&(cn=Иванов Иван Иванович))";
//String searchFilter="(&(cn=Моя группа))";
        
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        
NamingEnumeration<SearchResult> results = ctx.search(ldapSearchBase, searchFilter, searchControls); 

if(results.hasMoreElements()) {
    System.out.println("element was found);
} else
    System.out.println("no element was found");



В обоих случаях (когда ищу пользователя или группу) никаких ошибок не возникает. Но в случае группы (в отличие от пользователя) в приведенном выше коде будет выведено "no element was found"

Вообще мне нужно просто выбрать все группы по фильтру (&(objectClass=groupofnames)), но в Java (в отличие от Apache Directory Studio) у меня ничего не возвращается.

Что я делаю не так?
...
Рейтинг: 0 / 0
LDAP
    #39753381
Озверин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex1610,
ldapSearchBase где?
...
Рейтинг: 0 / 0
LDAP
    #39753387
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Озверин,
В корне
...
Рейтинг: 0 / 0
LDAP
    #39753389
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Java и в Apache Directory Studio при поиске я его указываю одинаковым
...
Рейтинг: 0 / 0
LDAP
    #39753391
Фотография Dmitry.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
используй results.hasMore() вместо results.hasMoreElements()
т.к.

This method allows naming exceptions encountered while determining whether there are more elements to be caught and handled by the application.

и возможно у тебя появятся ошибки
...
Рейтинг: 0 / 0
LDAP
    #39753400
alex1610
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят, спасибо Озверин
Все моя невнимательность, дополнительно указал организационную единицу
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / LDAP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]