我正在编写一个 LDAP 查询以返回 eDirectory 服务器上具有 UID 的每个帐户。然后这些帐户将被缓存到哈希图中以供以后使用。我使用的过滤器是 (&(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 查询是否有某种限制?如果是这样,我该怎么做才能绕过这个限制并将每个帐户的属性缓存到哈希图中?我的代码可以对整个字母表中以 a、b、c 等开头的所有 UID 运行多个查询,但恐怕我可能无法以这种方式获取每个帐户。