LDAP检查顶级组织中是否存在人员

时间:2012-02-02 08:29:01

标签: java ldap jndi

我是LDAP的入门者,最近几天才学会了如何进行LDAP查询。一世 使用这段代码来查找组中人员的成员资格。

    SearchControls srch = new SearchControls();
    srch.setSearchScope(SearchControls.SUBTREE_SCOPE); 
    String search_start = "CN=somegroup@myworld.com,OU=Managed Groups,OU=Accounts,DC=americas,DC=myworld,DC=com";
    String[] attrIDs = {"cn"};
    srch.setReturningAttributes(attrIDs);
    String search_target = "(member=CN=django@myworld.com,OU=US,OU=Users,OU=Accounts,DC=americas,DC=myworld,DC=com)";
    NamingEnumeration answer = cntxt.search( search_start, search_target,srch );
    boolean isInGroup = false;
    while(answer.hasMore()) {
        SearchResult rslt = (SearchResult)answer.next();
        Attributes attrs = rslt.getAttributes();
        NamingEnumeration<String> all = attrs.getIDs();
        isInGroup = true;
            break; 
    }

我现在的任务是如何查找此人是否属于顶级组织。我想出了在这种情况下我可以使用哪种查询的想法。有人可以提供一些建议吗?

的问候, 高野

1 个答案:

答案 0 :(得分:0)

假设您的顶级OU为:OU=Accounts,DC=americas,DC=myworld,DC=com

难道你不能只是改变以下内容来实现你所需要的吗?

// ...
String search_start = "OU=Accounts,DC=americas,DC=myworld,DC=com";
// ...
String search_target = "(member=CN=django@myworld.com,OU=Accounts,DC=americas,DC=myworld,DC=com)";
// ...