0

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

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);
    }
4

1 回答 1

1

您的过滤器无效,因此不返回任何数据。在

ctx.search(domain, searchFilter, searchControls);

作为搜索的基本 DN 传递。如果要将搜索限制在 ou=Example,ou=Examples_ou 的 dc=example,dc=com 内的用户,那么您的搜索基础 DN 应为“ou=Example,ou=Examples_ou,dc=example,dc=com”并且 searchFilter 将是简单的 "(&(objectClass=person))"

于 2018-12-24T16:16:16.153 回答