У меня есть приложение Java, которое я использую для поиска групп. Он работает очень хорошо с поиском на основе имени группы (cn), но иногда я получаю больше одного результата, так как тот же cn используется в других ветвях. У меня есть DN группы, и мне было интересно, как выполнить поиск на основе DN или если можно получить доступ к атрибуту напрямую, так как у меня есть полный путь. Вот код, я использую:Java как получить атрибут из ldap с помощью DN?
public Group getGroup(String groupName) throws Exception {
List<User> memberList = new ArrayList<User>();
// Create the search controls
SearchControls searchCtls = new SearchControls();
// Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
// Specify the attributes to return
String returnedAtts[] = { MEMBER_FIELD };
searchCtls.setReturningAttributes(returnedAtts);
// Specify the LDAP search filter
String searchFilter = "(&(objectClass=group)(CN=" + groupName + "))";
// Search for objects using the filter
NamingEnumeration<SearchResult> answer = ctxMap.get(configMap.get(GROUP)).search(configMap.get(SEARCHBASE), searchFilter,
searchCtls);
SearchResult sr = null;
// Loop through the search results
while (answer.hasMoreElements()) {
sr = (SearchResult) answer.next();
}
if (sr == null ) {
return group;
}
// Create an attribute for memberOf
javax.naming.directory.Attribute member = sr.getAttributes().get(MEMBER_FIELD);
// Enumeration of all elements in memberOf
NamingEnumeration<?> ne = member.getAll();
// Loop though the enumeration, cut unwanted characters and add all
// elements to User List
while (ne.hasMoreElements()) {
...
}
}
Так что я хочу передать различающееся имя группы в качестве параметра функции вместо названия группы и имею поиск производится по тем или получить атрибуты непосредственно. Это возможно?
PS: этот код используется для получения членов определенной группы.
спасибо
спасибо! Он просто возвращает объект, какой тип объекта я должен использовать, если я хочу получить атрибуты? – trixrabbit
Я читал, что с весной вы можете использовать AttributeMapper, но я никогда не использовал Spring раньше, поэтому мне интересно, есть ли другой способ. – trixrabbit