public List<Person> findAll() {
List<Person> result = new LinkedList<Person>();
final SearchControls searchControls = new SearchControls();
searchControls.setSearchScope(SearchControls.SUBTREE_SCOPE);
final PagedResultsDirContextProcessor processor =
new PagedResultsDirContextProcessor(500);
return SingleContextSource.doWithSingleContext(
ldapTemplate.getContextSource(), new LdapOperationsCallback<List<Person>>() {
@Override
public List<Person> doWithLdapOperations(LdapOperations operations) {
do {
List<Person> oneResult = operations.search(
"",
"(&(objectclass=person))",
searchControls,
new AttributesMapper<Person>() {
@Override
public Person mapFromAttributes(Attributes attributes) throws NamingException {
Person p = new Person();
p.setCn(attributes.get("cn")==null?"":(String) attributes.get("cn").get());
p.setCompany(attributes.get("company")==null?"":(String) attributes.get("company").get());
p.setDepartment(attributes.get("department")==null?"":(String) attributes.get("department").get());
p.setsAMAccountName(attributes.get("sAMAccountName")==null?"":(String) attributes.get("sAMAccountName").get());
return p;
}
},
processor);
result.addAll(oneResult);
} while(processor.hasMore());
return result;
}
},true,true,true);
}
本博客所有文章除特别声明外,均采用 CC BY-SA 3.0协议 。转载请注明出处!