constraints.setSearchScope(SearchControls.SUBTREE_SCOPE);
constraints.setCountLimit(0);
constraints.setDerefLinkFlag(true);
constraints.setTimeLimit(settings.getSearchTimeout());
List<SearchResult> tmp = new ArrayList<SearchResult>();
InitialDirContext context = null;
try {
context = new InitialDirContext(new Hashtable<String,String>(ldapEnvironment));
NamingEnumeration<SearchResult> namingEnumeration = context.search(baseDN, filter, attributes, constraints);
while (namingEnumeration.hasMore()) {
tmp.add(namingEnumeration.next());
}
} catch (NamingException e) {
log.error("LDAP search failed", e);
} finally {
if (context != null) {
context.close();
}
}
return tmp;
}