Range Results

Active Directory may not return all the values of an attribute, electing instead to provide the client with a range of attribute values. This practice is documented in an expired RFC: Incremental Retrieval of Multi-valued Properties. For instance, requests for the member attribute may return a result like: member;Range=0-1000. The client is then expected to request additional attribute values of the form member;Range=1001-2000 and so forth until all values have been retrieved. An EntryHandler is provided to handle this behavior.


Connection conn = DefaultConnectionFactory.getConnection("ldap://directory.ldaptive.org");
try {
SearchOperation search = new SearchOperation(conn);
SearchRequest request = new SearchRequest("dc=ldaptive,dc=org", "(sn=fisher)");
// perform additional searches for range attributes
request.setSearchEntryHandlers(new RangeEntryHandler());
SearchResult result = search.execute(request).getResult();
for (LdapEntry entry : result.getEntries()) {
// do something useful with the entry

} finally {