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

标签 java ldap apache-camel

我需要从 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/

相关文章:

java - 如何使用 apache Camel 而不是 xml 记录列表将平面文件中的单个记录转换为一个 xml

java - 有没有办法注入(inject)一个依赖项,该依赖项将根据注入(inject)的位置(使用 Spring 引导)使用特定的 bean?

java - 检测何时连接/断开 Wi-Fi

java - 在weblogic中从AD获取自定义用户属性

c# - 事件目录查询问题

dependency-injection - 当 "@PropertyInject"字段被注入(inject)时,想要检查注入(inject)的值

Java 追加到文本文件的每行末尾

java - 我们可以重构这些方法吗?

authentication - asp中通过LDAP进行用户身份验证

apache-camel - Apache Camel - 动态改变 throttle 值