Reputation: 123
I am using the next code to get all the users in the AD
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://grupoasisa.local:636");
env.put(Context.SECURITY_PROTOCOL, "ssl");
env.put(Context.SECURITY_PRINCIPAL, "DOMASISA\\"+USER_SERVICE);
env.put(Context.SECURITY_CREDENTIALS, PASSWORD_SERVICE);
try {
DirContext ctx = new InitialLdapContext(env, null);
SearchControls searchCtls = new SearchControls();
String returnedAtts[]={"sAMAccountName", "description", "mail"};
searchCtls.setReturningAttributes(returnedAtts);
//Specify the search scope
searchCtls.setSearchScope(SearchControls.SUBTREE_SCOPE);
searchCtls.setTimeLimit(0);
searchCtls.setCountLimit(0);
//Specify the LDAP search filter
String searchFilter="(&(objectCategory=person)(objectClass=user))";
//Specify the Base for the search
String searchBase = "DC=grupoasisa,DC=local";
// Search for objects using the filter
NamingEnumeration<SearchResult> answer = ctx.search(searchBase, searchFilter, searchCtls);
//Loop through the search results
while (answer.hasMoreElements()) {
SearchResult searchResult = answer.next();
Attributes attrs = searchResult.getAttributes();
Attribute usuWin = attrs.get("sAMAccountName");
Attribute racf = attrs.get("description");
Attribute email = attrs.get("mail");
}
} catch (NamingException e) {
System.err.println("Error: "+e.getMessage());
} catch (Exception e) {
System.err.println("Error: "+e.getMessage());
}
And I am receiving only the 1000 first records although I was specifying that the search was unlimited. What is happening?
Thanks in advance.
Upvotes: 2
Views: 1242