Java LDAP-запрос для получения всех пользователей в подразделении

1

Я не могу найти способ получить пользователей от LDAP по определенной организационной единице. Только для всех пользователей:

List users = (List<User>) ldapTemplate.search(base, "(&(objectClass=person))", new UserAttributesMapper());

Если я добавлю к запросу что-то вроде (memberOf = OU = Пользователи), я получаю пустые результаты. Каков правильный запрос для такого рода действий?

Теги:
ldap
ldap-query

3 ответа

0

Фактически, вы можете использовать фильтр (ou = Users), если атрибут ou является частью записей пользователя (что вряд ли имеет место).

Вы можете использовать ou = Users, dc = Company, dc = com в качестве базы.

В противном случае стандарт LDAP определяет способ соответствия утверждения как части Distinguished Name, но, к сожалению, не все LDAP-серверы поддерживают это. OpenDJ, Sun Directory Server и RH DS поддерживают его, возможно, некоторые другие. Фильтр, который вы должны использовать, следующий:

(& (Objectclass= человек) (НУ: DN: = пользователей))

С Уважением,

Лодовико.

0

Если OU является поддеревом, используйте его как базу поиска. Если это атрибут, выполните поиск по

(&(objectClass=person)(ou=Users))

Ваш поиск memberOf также должен работать, если атрибут memberOf поддерживается и обновляется, но вам нужно указать полное DN пользователей, а не только RDN.

0

Возможно, у вас неправильный путь LDAP. Загрузите ** LDAP Browser ** и проверьте путь, по которому ваши пользователи; затем используйте этот точный путь в своем запросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню