Leer Atributos
Para leer los atributos de un objeto desde el directorio, usamos DirContext.getAttributes()
y le pasamos el nombre del objeto del que queremos los atributos. Supongamos que
un objeto del servicio de nombres tiene el nombre "cn=Ted Geisel,
ou=People". Para recuperar los atributos de este objeto,
necesitamos un código que se parece a esto.
Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People");
Podemos imprimir el contenido de esta respuesta de esta forma.
for (NamingEnumeration ae = answer.getAll(); ae.hasMore();) {
Attribute attr = (Attribute)ae.next();
System.out.println("attribute: " + attr.getID());
/* Print each value */
for (NamingEnumeration e = attr.getAll(); e.hasMore();
System.out.println("value: " + e.next()))
;
}
Esto produce la siguiente salida.
# java GetattrsAll
attribute: sn
value: Geisel
attribute: objectclass
value: top
value: person
value: organizationalPerson
value: inetOrgPerson
attribute: jpegphoto
value: [B@1dacd78b
attribute: mail
value: Ted.Geisel@JNDITutorial.com
attribute: facsimiletelephonenumber
value: +1 408 555 2329
attribute: telephonenumber
value: +1 408 555 5252
attribute: cn
value: Ted Geisel
Devolver los Atributos Elegidos
Para leer un subconjunto de atributos seleccionados, suministramos un array de
strings que son los identificadores de los atributos que queremos recuperar.
// Specify the ids of the attributes to return
String[] attrIDs = {"sn", "telephonenumber", "golfhandicap", "mail"};
// Get the attributes requested
Attributes answer = ctx.getAttributes("cn=Ted Geisel, ou=People", attrIDs);
Este ejemplo solicita los atributos "sn",
"telephonenumber", "golfhandicap"
y "mail" del objeto "cn=Ted Geisel,
ou=People". Este objeto los tiene todos excepto el atributo "golfhandicap",
y por eso se devuelven sólo tres atributos en la respuesta. Aquí tenemos la
salida de este ejemplo.
# java Getattrs
attribute: sn
value: Geisel
attribute: mail
value: Ted.Geisel@JNDITutorial.com
attribute: telephonenumber
value: +1 408 555 5252