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 {