gpt4 book ai didi

LDAP 搜索查询以获取一个特定条目

转载 作者:行者123 更新时间:2023-12-04 05:30:50 28 4
gpt4 key购买 nike

我面前有RFC 4515提供 的字符串表示LDAP 搜索过滤器。我还研究了 UnboundId SDK for Java 的 API。但我不清楚当我希望我的查询获取 时使用的最佳习语是什么一,最多 LDAP 条目。我曾考虑过使用 DN 该条目作为 中的基础LDAP 查询,但是过滤实际上没有任何意义,我必须使用人为设计的无意义过滤器,对于搜索 中已指示的条目,该过滤器将被设计为真。基地 . IE。在协议(protocol)中似乎没有使用 alwaysTrue 过滤器。

最佳答案

如果识别名已知,则使用识别名作为基础对象,使用 SearchScope.BASE , 使用过滤器 (&) (或 objectClass=* )并提供客户端所需的属性列表。例如:

// exception handling not shown
final LDAPConnection conn = new LDAPConnection(host,port);
// some broken servers do not understand the legal filter '(&)', if
// your directory is broken in this way, use 'objectClass=*' and
// an equality filter can be created like:
// Filter filter = Filter.createEqualityFilter("objectClass","*");
final SearchRequest req = new SearchRequest(dn,SearchScope.Sub,"(&)",SearchRequest.ALL_USER_ATTRIBUTES);
final SearchResult result = conn.search(req);
final List<SearchResultEntry> entries = result.getSearchEntries();
conn.close();

这将返回条目的所有用户属性。同样的事情可以通过以下方式完成:
// exception handling not shown
final LDAPConnection conn = new LDAPConnection(host,port);
final SearchResultEntry entry = conn.getEntry(dn);
conn.close();

如果识别名已知,则第二种方法最为简洁。还有一个 getEntry(String dn,String attributes ...)客户端希望指定要返回的属性列表的方法。如果 DN 未知,则客户端必须搜索该条目并在 SearchResultEntry 中返回可分辨名称。每个返回至少一个条目的搜索请求。

至于在多个条目与过滤器匹配时最多获取一个条目,LDAP 客户端必须提供足够紧密的搜索范围和过滤器以将结果缩小到所需的一个条目。这就是过滤器和范围的用途。

关于LDAP 搜索查询以获取一个特定条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12656043/

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