SearchRequest в RootDSE - PullRequest
       65

SearchRequest в RootDSE

0 голосов
/ 01 апреля 2020

Мне нужна следующая функция для запроса пользователей с сервера AD:

public List<LDAPUserDTO> getUsersWithPaging(String filter)
{
    List<LDAPUserDTO> userList = new ArrayList<>();

    try(LDAPConnection connection = new LDAPConnection(config.getHost(),config.getPort(),config.getUsername(),config.getPassword()))
    {
        SearchRequest searchRequest = new SearchRequest("", SearchScope.SUB,filter, null);          
        ASN1OctetString resumeCookie = null;
        while (true)
        {
            searchRequest.setControls(
                    new SimplePagedResultsControl(100, resumeCookie));
            SearchResult searchResult = connection.search(searchRequest);
            for (SearchResultEntry e : searchResult.getSearchEntries())
            {
                LDAPUserDTO tmp = new LDAPUserDTO();
                tmp.distinguishedName = e.getAttributeValue("distinguishedName");
                tmp.name = e.getAttributeValue("name");
                userList.add(tmp);
            }

            LDAPTestUtils.assertHasControl(searchResult,
                    SimplePagedResultsControl.PAGED_RESULTS_OID);
            SimplePagedResultsControl responseControl =
                    SimplePagedResultsControl.get(searchResult);
            if (responseControl.moreResultsToReturn())
            {
                resumeCookie = responseControl.getCookie();
            }
            else
            {
                break;
            }
        }       
        return userList;
    } catch (LDAPException e) {
        logger.error(e.getExceptionMessage());
        return null;
    }


}

Однако, это прерывается, когда я пытаюсь выполнить поиск в RootDSE.

Что я пробовал до сих пор:

baseDN = null
baseDN = "";
baseDN = RootDSE.getRootDSE(connection).getDN()
baseDN = "RootDSE"

Все приводит к различным исключениям или пустым результатам:

Caused by: LDAPSDKUsageException(message='A null object was provided where a non-null object is required (non-null index 0). 

2020-04-01 10:42:22,902 ERROR [de.dbz.service.LDAPService] (default task-1272) LDAPException(resultCode=32 (no such object), numEntries=0, numReferences=0, diagnosticMessage='0000208D: NameErr: DSID-03100213, problem 2001 (NO_OBJECT), data 0, best match of:
    ''
 ', ldapSDKVersion=4.0.12, revision=aaefc59e0e6d110bf3a8e8a029adb776f6d2ce28')
...