Запрос eDirectory возвращает нежелание выполнять исключение LDAPSearchException
Я пишу запрос LDAP, чтобы вернуть каждую учетную запись с UID на сервере eDirectory. Эти учетные записи будут затем кэшироваться в хэш-карту для последующего использования. Я использую фильтр (&(UID=*)), но получаю следующее исключение:
Caught: LDAPSearchException(resultCode=53 (unwilling to perform), numEntries=0, numReferences=0, errorMessage='unwilling to perform', responseControls={SimplePagedResultsControl(pageSize=0, isCritical=false)})
LDAPSearchException(resultCode=53 (unwilling to perform), numEntries=0, numReferences=0, errorMessage='unwilling to perform', responseControls={SimplePagedResultsControl(pageSize=0, isCritical=false)})
at com.unboundid.ldap.sdk.LDAPConnection.search(LDAPConnection.java:3059)
at com.unboundid.ldap.sdk.LDAPInterface$search.call(Unknown Source)
Этот код запроса работает нормально, если я изменяю фильтр на что-то более конкретное, например (&(UID=a*)), но, похоже, он завершается ошибкой всякий раз, когда запрос возвращает много строк. Я дважды проверяю каждый запрос в Apache Directory Studio, и все они работают там без проблем.
Есть ли какое-то ограничение для запросов eDirectory? Если так, что я могу сделать, чтобы обойти этот лимит и кешировать атрибуты каждой учетной записи в хэш-карту? У меня есть работающий код, который выполняет несколько запросов для всех UID, начинающихся с a, b, c и т. Д. Для всего алфавита, но я боюсь, что, возможно, я получу не все аккаунты таким образом.
1 ответ
В комментарии вы предлагаете, что ROOT является базовым DN. Вы уверены, что базовое DN правильно?
Если вы включите трассировку на сервере eDirectory (DStrace с флагом +LDAP) и попробуете этот запрос, что вы видите? Скорее всего, вы получите более полезную ошибку. Как отмечает Джемстер в комментариях, сам запрос в порядке, скорее всего, у вас другая ошибка.