如何使用 java 从活动目录中的特定 ou 获取所有用户?

How to get all users from specific ou in active directory using java?

这是我用来获取但未填充任何内容的方法。

public void doSearch() throws NamingException {
        String searchFilter = "(&(ou=Example,ou=Examples_ou)(objectClass=person))";
        String domain = "DC=mydom,DC=com";
        SearchControls searchControls = new SearchControls();
        searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
        NamingEnumeration<SearchResult> answer = ctx.search(domain, searchFilter, searchControls);
        int ttl = 0;
        while (answer.hasMoreElements()) {
            SearchResult sr = (SearchResult) answer.next();
            ttl++;
            System.out.println(">>>" + sr.getName());
            Attributes attrs = sr.getAttributes();
            System.out.println(">>>>>>" + attrs.get("samAccountName"));
        }
        System.out.println("Total results: " + ttl);
    }

您的过滤器无效,因此returns没有数据。在

ctx.search(domain, searchFilter, searchControls);

domain 正在作为搜索的基本 DN 传递。如果您想将搜索限制在 ou=Example,ou=Examples_ou of dc=example,dc=com 内的用户,那么您的搜索基础 DN 应该是 "ou=Example,ou=Examples_ou,dc=example,dc=com" 并且 searchFilter 将只是 "(& (objectClass=person))"