jose azevedo
jose azevedo

Reputation: 245

Search all the users with a certain group in LDAP using unboundid

Im trying to get all entities with the "OU=Users". Right now i can get all the entities but i just wanted the entities that belong to the group User.

I have tried to change my search request but everything failed:

SearchRequest searchRequest = new SearchRequest(ldapConfig.getBaseDn(), SearchScope.SUB,
                Filter.createEqualityFilter("(objectClass=Users)", "person"));

Here is the full code:

SearchRequest searchRequest = new SearchRequest(ldapConfig.getBaseDn(), SearchScope.SUB,
                Filter.createEqualityFilter("(objectClass=Users)", "person"));
        ASN1OctetString resumeCookie = null;
        while (true) {
            searchRequest.setControls(new SimplePagedResultsControl(10, resumeCookie));
            SearchResult searchResult = ldapConnection.search(searchRequest);
            numSearches++;
            totalEntriesReturned += searchResult.getEntryCount();
            for (SearchResultEntry e : searchResult.getSearchEntries()) {
                System.out.println(e.getDN());
            }
            cont++;
            LDAPTestUtils.assertHasControl(searchResult, SimplePagedResultsControl.PAGED_RESULTS_OID);
            SimplePagedResultsControl responseControl = SimplePagedResultsControl.get(searchResult);
            if (responseControl.moreResultsToReturn()) {
                // The resume cookie can be included in the simple paged results
                // control included in the next search to get the next page of results.
                resumeCookie = responseControl.getCookie();
            } else {
                break;
            }

Ldap sample:

CN=name,OU=Users,OU=group2,OU=group3,OU=group4,OU=group5,DC=dc1,DC=dc2

Upvotes: 2

Views: 1196

Answers (1)

Vasilii Kovalev
Vasilii Kovalev

Reputation: 11

You may try something close to:

fun exaple(baseDN: String = "DC=dc1,DC=dc2", groupName = "groupName") {
    val groupDN = "CN=$groupName,CN=Users,$baseDN"

    val filterForUsersInGroup = Filter.createANDFilter(
        Filter.createEqualityFilter("objectClass", "user"),
        Filter.createEqualityFilter("memberOf", groupDN)
    )

    client.search(baseDN, SearchScope.ONE, filterForUsersInGroup)
}

Upvotes: 0

Related Questions