我正在编写一个LDAP查询,以返回eDirectory服务器上具有UID的每个帐户。然后,这些帐户将被缓存到hashmap中以供稍后使用。我使用的过滤器是(&(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查询有某种限制吗?如果是这样,我如何才能绕过这一限制,并将每个帐户的属性缓存到hashmap中?我的代码可以对所有以a、b、c等开头的UID运行多个查询,查询整个字母表,但我担心我不能以这种方式获得每个帐户。
发布于 2014-02-09 22:22:01
在注释中,您建议ROOT是基本DN。您确定基本DN正确吗?
如果在eDirectory服务器(带+LDAP标志的DStrace)上启用跟踪并尝试此查询,您会看到什么?你可能会得到一个更有用的错误。正如Jeemster在评论中指出的那样,查询本身是好的,而你可能有一个不同的错误。
https://stackoverflow.com/questions/20912006
复制相似问题