Искать конкретную запись в ldap - PullRequest
0 голосов
/ 22 марта 2019

Я пытаюсь найти запись в ldap по названию той же записи.

Записи поиска, которые я получаю, похожи на эту:

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

Я хочу отфильтровать результаты поиска, чтобы показать запись с этим именем, потому что в настоящее время я получаю все записи:

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

Я использую ldap unboundid с springboot.

1 Ответ

1 голос
/ 22 марта 2019

Чтобы найти "CN = nameOfTheUser, OU = firstGroupName, ..., DC = domain1, DC = domain2" или любую запись, которую вы знаете, DN является правильным, вам нужно что-то вроде:

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

Вы должны также рассмотреть READ, похожий на:

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

Если вам нужно найти запись, то запрос поиска похож на:

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

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

-Джит

...