我们有一个用户,我们的公司门户无法从AD获取组。
在门户日志中,我们看到此错误:
javax.naming.PartialResultException:未处理的Continuation Reference(s)剩余名称''
我已经Google搜索了错误以及似乎描述此案例的最佳症状以及解决方法如下:http://www-01.ibm.com/support/docview.wss?uid=swg21232921
假设我们不想仅仅因为一个用户而改变配置但是要修改这个特定用户的数据,有人可以解释一下我在检查用户在AD中的记录时如何识别这个?这是否与他的小组作业有关,如果是,那么我应该寻找什么?
答案 0 :(得分:7)
我刚碰到这个。
我通过设置InitialDirContext环境将Context.REFERRAL键设置为“follow”来解决它。
根据Javadocs,该密钥可以是“跟随”,“忽略”或“抛出”。默认值由您使用的提供程序确定,可能是“throw”。
答案 1 :(得分:4)
请查看此链接,了解有关API告诉您的更多数据:http://www.jspwiki.org/wiki/ActiveDirectoryIntegration
我不是这个API的专家,但至少可以根据该文档解释我的想法。了解AD正在做什么。 :)
当您在本地服务器/搜索之外但在请求的逻辑范围内执行具有命名上下文的搜索时,AD将返回所谓的引荐。这是根据RFC请求。想一个推荐作为一个暗示给你的应用程序可能有更多的数据...即,即AD服务器说“这是我给你的结果,但你应该知道,有人否则可能会有更多...去这里找出来。“ 推荐不是“错误”,它们是应用程序的暗示。
您的LDAP API似乎在遇到它们时抛出异常。根据我上面引用的文档,看起来您可以吞下它们或追踪引用以查明是否有更多数据。
答案 2 :(得分:0)
我发现的其中一个问题是ldapContext中的搜索查询字符串不正确。由于参数抛出的格式错误而形成的错误查询:
javax.naming.PartialResultException: Unprocessed Continuation Reference(s) remaining name ''
但是如果我们添加参数Context.REFERRAL ="请遵循",那么它不会抛出异常,但也不会返回结果。
ldap查询字符串的参数也应该与LDAP接受的参数相匹配,否则会引发相同的错误。
答案 3 :(得分:0)
为 env 属性添加此项
env.put(Context.REFERRAL,"follow");