gpt4 book ai didi

java - 如何在 ApacheDS 1.5.5 上实现自定义分区?

转载 作者:行者123 更新时间:2023-12-01 15:52:00 24 4
gpt4 key购买 nike

我正在 Apache DS 上实现自定义分区(实现 org.apache.directory.server.core.partition.Partition)。

我可以在我的自定义分区上进行搜索,但是如果我想使用过滤器(即 objectClass=”person”),我的分区将返回找到的所有条目,根本不进行任何过滤。

任何人都可以举例说明如何使用自定义分区过滤“搜索”方法返回的条目吗?

此外,如果有人能指出我完成搜索方法实现的示例,我将不胜感激。我需要更多信息,特别是有关搜索范围(OBJECT、ONELEVEL 或 SUBTREE)的信息。

我使用的是 ApacheDS 1.5.5 版本。

非常感谢!

最佳答案

目录是一棵树。当您使用 LDAP 在您给出的目录中搜索(编写搜索协议(protocol)数据单元)时:

  1. 开始搜索的节点的 DN
  2. 您要检索的属性
  3. 过滤器 ((&(objectClass=*))
  4. 搜索的深度

对于深度,你有 3 种可能性

  • 子树:尝试从头开始递归搜索中匹配过滤器。
  • OneLevel:尝试仅在起始节点下的节点中匹配过滤器。
  • base:尝试将过滤器与 nod 属性相匹配(用于获取 RootDSE 属性)。

如果我回到你的问题。请注意 SCHEMA 中定义的类型的实现。类型全部派生自类型top。如果我以 inetOrgPerson 类型为例,您可以在 SCHEMA 中看到该类型是 organizationalPerson 的子级,而 organizationalPersonperson 的子级>,它是 top 的子级。在这种特殊情况下,inetOrgPerson 对象的 objectClass 属性值将是 4 倍:

objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson

因此,如果您使用 (&(objectClass=person)) 等过滤器编写搜索 PDU,您将获得从 personorganizationalPersoninetOrPerson 发出的对象 输入您的结果。

某些搜索工具中的另一件事是,如果过滤器写得不好或不理解,则使用默认过滤器 ((&(objectClass=*))(这意味着一切)。

关于java - 如何在 ApacheDS 1.5.5 上实现自定义分区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5837329/

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