有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

ldap查询搜索筛选器中“&”的java意义

我正在尝试查询LDAP/ActiveDiRecordy服务器中的用户和组信息。我正在使用搜索过滤器,我无法找到足够的文档。我有兴趣了解“什么”&在下面的查询中执行

String searchFilter = "(&(objectClass=group)(objectSid=" + sid + "))";
SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
NamingEnumeration<SearchResult> results = ctx.search(ldapSearchBase, searchFilter, searchControls);

有人可以解释并指出有助于理解如何查询ldap以获取任何类型的infomraiton的文档吗


共 (1) 个答案

  1. # 1 楼答案

    正如EJP在问题的注释部分所述,符号只是一个“AND”操作符。在评估记录集中的任何记录时,必须满足所有条件

    sampleFilter = (&condition1(condition2))
    //records having both condition 1 AND condition 2 true will be returned from the directory.
    

    searchFilter分配语句的作用是,它将根据您提供的筛选器执行LDAP搜索。它的搜索筛选器将返回与组类型对应且其objectsID=的所有对象

    String searchFilter = "(&(objectClass=group)(objectSid=" + sid + "))";
    

    在这种情况下,将返回与目录中的组相对应的所有记录,这些记录的sID是作为sID传递的记录

    对于您的情况,更简单地说,searchFilter=(具有sID的组:)

    文档部分与您正在使用的目录服务相关。如果您使用的是Microsoft的Active Directory服务,请参阅Active Directory: LDAP Syntax Filters文档