Cómo utilizar Java para operar conexiones LDAP LDAP
String url = "ldap://10.0.0.10:389/"
String domain = "dc=dtas,dc" =com";
String usuario = "cn=administrador,cn=usuarios";
String contraseña = "111111";
Hashtablelt; String, Stringgt ; env = new Hashtablelt; String, Stringgt ();
env.env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); >
env.put(Context.User", " dominio); // Complete el DN
env.put(Context.SECURITY_CREDENTIALS, contraseña // Contraseña de AD
<); p> env.put("java.naming.ldap. atributos.binary", "objectSid objectGUID");LdapContext ldapCtx = null
try {
<; p> ldapCtx = new InitialLdapContext(env, null);queryGroup(ldapCtx);
//queryUser(ldapCtx);
} catch (NamingException e ) {
e.printStackTrace();
} finalmente {
if(ldapCtx ! = null) {
prueba {
ldapCtx.close();
} catch (NamingException e) {
} //queryUer(ldapCtx).
}
}
}
}
grupo de consultas vacío estático privado (LdapContext ldapCtx) lanza NamingException {
SearchControls searchCtls = new SearchControls();
searchCtls.SUBTREE_SCOPE);
String searchFilter = "objectClass=organizationalUnit"
String searchBase = " ou=myDeptSubDept, ou; =miDepto, dc=DS-66, dc=com";
Cadena devueltaAtts[] = {"dist
inguishedName", "objectGUID", "name"};
searchCtls.setReturningAttributes(returnedAtts);
NamingEnumerationlt; SearchResultgt; respuesta = ldapCtx.search(searchBase, searchFilter, searchCtls);
while (answer.hasMoreElements()) {
SearchResult sr = respuesta.next();
Atributos Atributos = sr. p>
p>
if (Attrs ! = null) {
NamingEnumerationlt;? gt; ne = Attrs.getAll(); ()) {
Atributo Attr = (Atributo)ne.next();
Nombre de cadena = Attr.getID()
Enumeraciónlt;? ; valores = Attr.
if (valores! = null) { // Iterar
while (values.hasMoreElements()) {
Valor de cadena = "";
if("objectGUID".nameUUIDFromBytes((byte[]) valores.nextElement()).toString();
} else {
valor = (Cadena) valores.nextElement();
}
System.out.println(nombre " " valor
}
}
}
}
System.out.println("============= ========== ");
}
}
}
}
p>}