gpt4 book ai didi

java - 在 Apache Camel LDAP 组件中对结果进行分页

转载 作者:太空宇宙 更新时间:2023-11-04 13:52:24 25 4
gpt4 key购买 nike

我需要从 LDAP 获取多个条目(> 1000 个用户)。文档 ( http://camel.apache.org/ldap.html ) 说有一个 pageSize 选项可以实现此目的。

页面大小
“指定后,ldap 模块使用分页来检索所有结果(大多数 LDAP 服务器在尝试在一个查询中检索超过 1000 个条目时会抛出异常)。为了能够使用此功能,必须将 LdapContext(DirContext 的子类)作为 ldapServerBean 传入(否则会抛出异常)”

这是什么意思?如何传入 LdapContext 以及如何迭代页面?有人可以给我一个简单的例子,其中许多条目是从 LDAP 获取的吗?

最佳答案

除了指定 pageSize 参数之外,您可能不需要执行其他任何操作。该描述澄清了一个您可能不会遇到的小问题。

ldap 组件不仅限于从 LdapContext 读取,它还可以使用 DirContext( super 接口(interface))的实例。使用此 super 接口(interface)的实例将有效除了设置pageSize。如果您遵循 Camel 文档中的示例,您将看到它使用 com.sun.jndi.ldap.LdapCtxFactory 作为上下文 bean 的工厂。此类构建实现 LdapContext 的对象,因此 pageSize 参数应该起作用。

例如,您只需将参数添加到 URI 即可。

Collection<?> results = (Collection<?>) (template
.sendBody(
"ldap:ldapserver?base=ou=mygroup,ou=groups,ou=system&pageSize=1000",
"(member=uid=huntc,ou=users,ou=system)"));

关于java - 在 Apache Camel LDAP 组件中对结果进行分页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30163817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com