Я пытаюсь использовать метод getAll () из LDAPPersister для доступа к объектам из указанной организационной единицы активного каталога.
Я нашел только один код пример .
А вот мой код:
LDAPPersister ldapPersister = LDAPPersister.getInstance(Group.class);
String dn = "ou=Groups,ou=ou2,ou=ou1,dc=dc2,dc=dc1";
SearchResult searchResult = ldapPersister.getAll(ldapConn, dn, groupsObjectSearchListener);
private ObjectSearchListener<Group> groupsObjectSearchListener = new ObjectSearchListener<Group>() {
@Override
public void objectReturned(Group group) {
log.info("objectReturned");
groups.add(group);
}
@Override
public void unparsableEntryReturned(SearchResultEntry searchResultEntry, LDAPPersistException e) {
log.info("unparsableEntryReturned");
}
@Override
public void searchReferenceReturned(SearchResultReference searchResultReference) {
log.info("unparsableEntryReturned");
}
};
Групповой класс генерируется из схема .
Результат (нет журналов от предоставленного слушателя):
LDAPException(resultCode=1 (operations error), diagnosticMessage='00002120: SvcErr: DSID-0312044F, problem 5012 (DIR_ERROR), data 592060
', ldapSDKVersion=4.0.9, revision=29290')
Я также попробовал другой способ получить объекты группы:
String dn = "ou=Groups,ou=ou2,ou=ou1,dc=dc2,dc=dc1";
Filter filter = Filter.create("(objectClass=Group)");
SearchRequest searchRequest = new SearchRequest(dn, SearchScope.ONE, filter);
SearchResult searchResult = ldapConn.search(searchRequest);
LDAPPersister ldapPersister = LDAPPersister.getInstance(Group.class);
Group group = (Group) ldapPersister.decode(searchResult.getSearchEntries().get(0));
Ион дает ожидаемые результаты (4 группы) без ошибок - поэтому я думаю, что dn и connection должны быть в порядке.
В любом случае, я был бы очень признателен за любые примеры рабочего кода или объяснения, что я делаю неправильно.