obtener example ejemplo atributos java ldap spring-ldap adldap

ejemplo - ldap java example



Obtener una lista de nombres de usuario de dominio LDAP utilizando Java (0)

Los nombres de usuario ldap deben mostrarse en el cuadro de entrada como función de autocompletar. Estoy tratando de obtener una lista de usuarios de la siguiente manera:

String ldapURL = "ldap://192.26.75.5:389/dc=northamerica,dc=company,dc=com"; String principalPrefix = "domainName"; String username = SecurityContextHolder.getContext().getAuthentication().getName(); String password = SecurityContextHolder.getContext().getAuthentication().getCredentials().toString(); Hashtable<String, String>environment = new Hashtable<String, String>(); environment.put(Context.INITIAL_CONTEXT_FACTORY,"com.sun.jndi.ldap.LdapCtxFactory"); environment.put(Context.PROVIDER_URL,ldapURL); environment.put(Context.SECURITY_AUTHENTICATION,"simple"); environment.put(Context.SECURITY_PRINCIPAL,principalPrefix + "//" + username); environment.put(Context.SECURITY_CREDENTIALS,password); environment.put( Context.REFERRAL, "follow" ); DirContext context = null; NamingEnumeration<SearchResult> enumResult = null; try { context = new InitialDirContext(environment); SearchControls controls = new SearchControls(); controls.setSearchScope(SearchControls.SUBTREE_SCOPE); String[] attrIDs ={"ou","uid", "givenname", "sn", "mail"}; controls.setReturningAttributes(attrIDs); enumResult = context.search("","(&(objectCategory=person)(objectClass=user)(CN=*))", controls); if(enumResult != null) { //authentication successful } } catch(Exception e){ System.out.println(e.getMessage()); }

Sin embargo, "enumResult" siempre obtiene un valor de usuario único. Avíseme si me estoy perdiendo algo o si es la manera incorrecta de hacerlo. ¡Cualquier ayuda / consejo / sugerencia sería apreciada! Gracias.