Active Directory为什么不向我返回PagedResultsResponseControl?

时间:2018-08-16 13:23:35

标签: java active-directory ldap jndi

我正在尝试从Java枚举Active Directory中的所有组。有很多,所以经过1000个结果,我得到了SizeLimitExceededException。我尝试使用PagedResultsControl,我的代码非常紧密地模仿了网络上的所有示例,并且它可以正常工作,因为它不再抛出SizeLimitExceededException,并返回符合指定页面尺寸(不大于1000)的结果数。

但是,下一步是从响应中获取cookie并使用它来获取下一页,而我的问题是,在调用{{之后,上下文中没有PagedResultsResponseControl 1}}。实际上search()返回getResponseControls()

我已经进行了广泛的搜索,似乎找不到其他人报告此问题,并且我非常困在这里。那我在做什么错?为什么我没有得到null

我们的域在Windows Server 2016上运行,并且我将代码缩减为以下测试用例:

PagedResultsResponseControl

1 个答案:

答案 0 :(得分:0)

也许您的 ldap服务器不支持分页查询,您可以使用ldapsearch 命令,如下所示:

ldapsearch -H ldap://xxxx:389 -x -D "uid=zhangsan,ou=employee,dc=test,dc=com" -W -b "" -s base -a always "(objectClass=*)" "supportedControl"

如果返回值包含1.2.840.113556.1.4.319,则表明您的 ldap服务器支持分页查询