Результат не возвращается из LDAP с JNDI

Я использую spring-ldap и передаю этот поисковый фильтр

(&(&(cn=*)(objectClass=group))(member=cn=MDMAdmin\, Test,ou=Externe Accounts,ou=Users,ou=Foo-Deutschland,dc=foocompany,dc=int))

метод

org.springframework.ldap.core.LdapTemplate.search(String, String, SearchControls, NameClassPairCallbackHandler)

К сожалению, я не получаю никакого результата. Тот же фильтр работает в LDAP Admin.

Следующий фильтр работает в обоих:

(&(&(cn=*)(objectClass=group))(member=*))

Нужно ли мне другое экранирование для spring-ldap? База поиска и область поиска настроены правильно.


person Martin Ždila    schedule 04.12.2012    source источник
comment
Вам не нужны два &. Эти операторы фильтрации не являются бинарными: они могут принимать любое количество операндов. По этой причине префиксная нотация используется в фильтрах LDAP.   -  person user207421    schedule 06.12.2012


Ответы (1)


Используйте фильтр:

(&(&(cn=*)(objectClass=group))(member=cn=MDMAdmin%2c Test,ou=Externe Accounts,ou=Users,ou=Foo-Deutschland,dc=foocompany,dc=int))

Если отличительное имя содержит символ запятой как часть его имени. Следующие символы должны быть экранированы, если они составляют часть отличительного имени: ' ', '"', '#', '+', ',', ';', '‹', '=', '>', или '\'. См. также RFC4514.

person Terry Gardner    schedule 05.12.2012