我正在尝试从Java枚举Active Directory中的所有组。有很多,所以经过1000个结果,我得到了SizeLimitExceededException
。我尝试使用PagedResultsControl
,我的代码非常紧密地模仿了网络上的所有示例,并且它可以正常工作,因为它不再抛出SizeLimitExceededException
,并返回符合指定页面尺寸(不大于1000)的结果数。
但是,下一步是从响应中获取cookie并使用它来获取下一页,而我的问题是,在调用{{之后,上下文中没有PagedResultsResponseControl 1}}。实际上search()
返回getResponseControls()
。
我已经进行了广泛的搜索,似乎找不到其他人报告此问题,并且我非常困在这里。那我在做什么错?为什么我没有得到null
?
我们的域在Windows Server 2016上运行,并且我将代码缩减为以下测试用例:
PagedResultsResponseControl
答案 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服务器支持分页查询。