Search code examples
ldapldap-queryunboundid-ldap-sdk

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.


Solution

  • 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