Categorías destacadas
programacion php    
Artículo
1
¡votar!

 Sistema de Nombrado en Java (JNDI) y II


Renombrar Objetos

Usamos Context.rename() para renombrar un objeto en el directorio. En el LDAP v2, esto corresponde con la operación "modify RDN" que renombra una entrada dentro del mismo contexto. En el LDAP v3, esto corresponde con la operación "modify DN", que es como "modify RDN," excepto en que la entrada nueva y la vieja no tienen que estar en el mismo contexto. Podemos usar Context.rename() para renombrar una entrada hoja o un nodo interior. El siguiente código renombra un nodo interior de "ou=NewHires" como "ou=OldHires".

ctx.rename("ou=NewHires",
"ou=OldHires");
Nota:

El Netscape Directory Server v4.1 no soporta renombrar nodos interiores. Si ejecutamos este ejemplo, obtendremos una ContextNotEmptyException.

. Renombrar a una Parte Diferente del DIT

Con el LDAP v3, podemos renombrar una entrada a una parte diferente del DIT. Para hacer esto usando Context.rename(), debemos usar un contexto que sea el ancestro común para la nueva y vieja entrada. Por ejemplo, para renombrar "cn=C. User, ou=NewHires, o=JNDITutorial" como "cn=C. User, ou=People, o=JNDITutorial", debemos usar el contexto llamado "o=JNDITutorial". Abajo tenemos un ejemplo que demuestra esto. Si intentamos ejecutar este ejemplo en unservidor LDAP v2, obtendremos una InvalidNameException porque la versión 2 no soporta esta caracterísitica.

ctx.rename("cn=C. User, ou=NewHires", "cn=C. User, ou=People");
Nota:

El Netscape Directory Server v4.1 no soporta el renombrado con diferentes nodos padre. Si ejecutamos este ejemplo usando ese servidor, obtendremos una CommunicationException (indicando un "error de protocolo").

. Mantener los Atributos del Viejo Nombre

En LDAP, cuando renombramos una entrada, tenemos la opción de mantener el RDN de la vieja entrada como un atributo de la entrada actualizada. Por ejemplo, si renombramos la entrada "cn=C. User" como "cn=Claude User", podemos especifcar si queremos que se mantenga como un atributo el viejo RDN "cn=C. User".

Para especificar si queremos mantener el atributo del nombre antiguo cuando usamos Context.rename(), debemos usar la propiedad de entorno "java.naming.ldap.deleteRDN". Si el valor de esta propiedad es "true" (por defecto) el RDN antiguo será eliminado. Si el valor es "false", entonces el RDN antiguo se mantendrá como un atributo de la entrada actualizada.

// Set the property to keep RDN
env.put("java.naming.ldap.deleteRDN", "false");

// Create the initial context
DirContext ctx = new InitialDirContext(env);

// Perform the rename
ctx.rename("cn=C. User, ou=NewHires", "cn=Claude User,ou=NewHires");
Publicado por:
Ricard Lou Torrijos
Recomendar
a un amigo
Compartir
en redes
 
Comentarios
 
BBDD
Entornos de desarrollo
Entretenimiento
Herramientas
Internet
Lenguajes de script
Lenguajes imperativos
Lenguajes orientados a objeto
Otros lenguajes
Plataformas
Teoría
Varios
Copyright © 1998-2011 Programación en Castellano. Todos los derechos reservados
Datos legales | Politica de privacidad | Contacte con nosotros | Publicidad

Diseño web y desarrollo web. Un proyecto de los hermanos Carrero.

Red internet:
Juegos gratis | Servidores dedicados
Más internet: Password | Directorio de weblogs | Favicon