jose azevedo
jose azevedo

Reputation: 245

Search for a specific entry in ldap

I am trying to search an entry on ldap based on the name of the same entry.

The search entries that I am getting are similar to this one:

CN=nameOfTheUser,OU=firstGroupName,...,DC=domain1,DC=domain2

What I want to do is filter my search to just show the entry with that name because currently I´m getting all of the entries:

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

I'm using ldap unboundid with springboot.

Upvotes: 0

Views: 469

Answers (1)

jwilleke
jwilleke

Reputation: 11056

To find "CN=nameOfTheUser,OU=firstGroupName,...,DC=domain1,DC=domain2" or any entry you know the DN is correct, you need something like:

SearchRequest searchRequest = new SearchRequest("CN=nameOfTheUser,OU=firstGroupName,...,DC=domain1,DC=domain2", SearchScope.BASE, Filter.createEqualityFilter("objectClass", "person"));

You should also consider a READ similar to:

LDAPConnection.read("CN=nameOfTheUser,OU=firstGroupName,...,DC=domain1,DC=domain2",
             java.lang.String[], LDAPSearchConstraints)

If you need to find the entry, then a search request similar to:

Filter andFilter = new Filter.createANDFilter(
                    Filter.createEqualityFilter("objectClass", "person"),
                    Filter.createEqualityFilter("cn", "nameOfTheUser"));

SearchRequest searchRequest = new SearchRequest("new SearchRequest(ldapConfig.getBaseDn()", SearchScope.BASE, andFilter);

-jim

Upvotes: 1

Related Questions