【问题标题】:Need elaboration on Unprocessed Continuation Reference需要详细说明未处理的继续参考
【发布时间】:2012-08-31 21:47:26
【问题描述】:

我们的公司门户网站无法从 AD 获取用户组。

在门户日志中我们看到这个错误:

javax.naming.PartialResultException:未处理的继续引用剩余名称''

我已经在 Google 上搜索了错误和似乎描述此案例的最佳症状以及解决方法:http://www-01.ibm.com/support/docview.wss?uid=swg21232921

假设我们不想仅仅因为一个用户而更改配置,而是要修改这个特定用户的数据,有人可以解释一下我在检查 AD 中的用户记录时如何识别这一点吗?这是否与他的小组作业有关,如果是,那么我应该寻找什么?

【问题讨论】:

    标签: active-directory


    【解决方案1】:

    我刚刚遇到了这个。

    我通过将 InitialDirContext 环境设置为将 Context.REFERRAL 键设置为“follow”来解决这个问题。

    根据 Javadocs,该键可以是“follow”、“ignore”或“throw”。默认由你使用的提供者决定,可能是“throw”。

    【讨论】:

      【解决方案2】:

      查看此链接以获取有关 API 告诉您的更多数据:http://www.jspwiki.org/wiki/ActiveDirectoryIntegration

      我不是该 API 方面的专家,但至少可以根据该文档和对 AD 正在做什么的了解来解释我认为正在发生的事情。 :)

      当您执行的搜索具有此本地服务器/搜索之外的命名上下文但在您的请求的逻辑范围内时,AD 会返回所谓的“referrals”。这是每个 RFC 请求。将推荐视为向您提示应用程序可能存在更多数据...即,AD 服务器正在说 “这是我为您提供的结果,但是,您应该知道,还有其他人可能有更多...去这里了解一下。” 推荐不是“错误”,而是对应用的提示。

      您的 LDAP API 在遇到它们时似乎抛出了异常。根据我上面引用的文档,看起来您可以吞下它们或追逐推荐以找出是否有更多数据。

      【讨论】:

      • 谢谢,现在清楚一点了。我想我的下一个问题是如何确定该特定用户存在哪些无效的推荐并将其删除?
      • 如果您告诉我您的森林的名称空间配置以及您使用的搜索库类型,我可能会提供帮助。这通常是因为有一个命名空间是您正在搜索的命名空间的“子”,并且您正在使用子树搜索。 (例如:您正在搜索 dc=domain,dc=com 并且还有一个 dc=child,dc=domain,dc=com )。哦,你不想删除它们。您想更改搜索查询/api 配置。移除它们可能会破坏你森林中的东西。 :)
      • 我可以从哪里获得森林的命名空间?搜索基数为:DC=comp1,DC=ad,DC=comp,DC=com
      • 也可能有助于给出整个错误:javax.naming.PartialResultException: Unprocessed Continuation Reference(s));剩下的名字''。注意剩下的名字'',这是否给你一个提示?
      • 如果您查看 cn=partitions,cn=configuration,dc= 您将看到每个命名空间的交叉引用。这是帮助...寻找搜索基地的孩子。另一种选择是对搜索进行网络嗅探,看看你得到了哪些确切的推荐。顺便说一句,如果我们已经达到一般建议边际收益递减的地步,并且希望在您的配置中变得非常具体,请随时给我发电子邮件。
      【解决方案3】:

      我发现的问题之一是 ldapContext 中的搜索查询字符串不正确。由于参数格式错误而形成的错误查询抛出:

      javax.naming.PartialResultException: Unprocessed Continuation Reference(s) remaining name '' 
      

      但是如果我们添加参数Context.REFERRAL="follow",那么它不会抛出异常但也不会返回结果。

      ldap 查询字符串的参数也应该与 LDAP 接受的参数匹配,否则会抛出相同的错误。

      【讨论】:

        【解决方案4】:

        为环境属性添加这个

         env.put(Context.REFERRAL,"follow");
        

        【讨论】:

        • 虽然这段代码可以为这个问题提供一个解决方案,但最好添加上下文来说明它为什么/如何工作。这可以帮助未来的用户学习并最终将这些知识应用到他们自己的代码中。解释代码时,您也可能会得到用户的积极反馈/赞成。
        猜你喜欢
        • 2021-09-27
        • 1970-01-01
        • 2022-11-14
        • 1970-01-01
        • 2014-01-20
        • 1970-01-01
        • 2013-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多