我正在尝试通过 Java 从 LDAP 获取字段的所有不同值。但我不知道该怎么做。
LDAP 中有一个名为“title”的属性。我想获得该字段的所有不同值。
我怎样才能做到这一点?
没有 LDAP API 直接支持它,比如 SQL 中的 SELECT DISTINCT。您将必须检索所有值并过滤掉重复项。
要从 LDAP 目录服务器数据库中检索属性,LDAP 客户端必须连接到服务器,使用 BIND 请求建立身份验证状态,并将搜索请求传输到服务器,并解释响应。搜索请求至少包括:
要检索具有别名的所有属性,title
请使用以下过滤器:(title=*)
具有上述适当的基础对象和范围。LDAP 目录服务器将返回所有具有title
属性的对象。如果title
是多值的,对象可能包含多个title
。LDAP 客户端负责对结果进行排序。没有SELECT DISTINCT
设施。如果具有title
属性的条目数量对于客户端来说太大,客户端可以使用简单分页结果请求控制来控制条目从 LDAP 目录服务器返回的速率。
不要将 JNDI (java.naming.*) 用于新代码。请改用UnboundID LDAP SDK。