【问题标题】:eDirectory query returns unwilling to perform LDAPSearchExceptioneDirectory 查询返回不愿意执行 LDAPSearchException
【发布时间】:2014-01-03 20:17:35
【问题描述】:

我正在编写一个 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 运行多个查询,但恐怕我可能无法以这种方式获取每个帐户。

【问题讨论】:

  • 你也可以发布你的代码吗?
  • 我正在使用一个自定义库,它调用以下几行: ---------------------- def req = new SearchRequest( ROOT, SearchScope.SUB, filter, null) ------ req.attributes = returnAtts -------------------- 其中 ROOT 是基本 DN,filter 是LDAP过滤器,returnAtts是返回属性列表。
  • 过滤器适用于 Novell eDirectory 8.8 SP7 (20705.00) 的 LDAP 代理。一定是你正在做的其他事情。尝试发布一些代码。您是否在命令行上使用 ldapsearch 尝试过这个?

标签: java groovy ldap ldap-query edirectory


【解决方案1】:

在评论中,您建议 ROOT 是基本 DN。您确定基本 DN 是正确的吗?

如果您在 eDirectory 服务器上启用跟踪(带有 +LDAP 标志的 DStrace)并尝试此查询,您会看到什么?你可能会得到一个更有帮助的错误。正如 cmets 中的 Jeemster 所指出的,查询本身很好,但您可能会遇到不同的错误。

【讨论】:

  • 是的,我确定 ROOT 是基本 DN。我实际上无权在服务器上启用跟踪。出于我的目的,我使用了一种解决方法,其中我查询了姓氏以 A 开头的所有用户,然后 B 然后 C... 等等。我同意我的问题是其他问题,并且似乎与一次返回大量结果有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-03
  • 1970-01-01
  • 2023-03-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多