Programación en castellano Añadir una dirección | Buscador | Cursos | Artículos | Foros | Formación

Sistema de Nombrado en Java (JNDI) y II
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Versiones de Protocolos

El LDAP está disponible como versión 2 y como versión 3. Como se explicó en la lección Comparación de los Modelos LDAP y JNDI, las dos versiones difieren en muchas características (como las remisiones y los mecanismos de autentificación conectables) que son parte de la versión 3 pero no están disponibles en la versión 2. Pero para la mayoría de los casos cuando usemos el JNDI para acceder al servicio LDAP, no veremos diferencias entre las dos versiones.

El proveedor de servicio LDAP de Sun soporta la dos versiones. La selección del protocolo a utilizar depende principalmente de qué versión del servidor LDAP soporta. Por defecto, el proveedor LDAP primero usa la versión 3 para comunicar con el servidor LDAP especificado. Si el servidor no soporta esta versión, entonces el proveedor LDAP intenta comunicar usando la versión 2. El proveedor LDAP maneja automáticamente la selección, por eso no es necesario que el cliente especifique que versión particular quiere usar.

Sólo en unas pocas circunstancias podriamos querer especificar una versión de protocolo explícitamente. Una es que el servidor LDAP con el que queremos comunirar falle al indicar que no soporta la versión 3. Algunos servidores públicos exhiben este comportamiento, y un intento de comunicar con ellos usando la versión 3 puede resultar en un cuelgue del cliente (porque el servidor no soporta la versión) o en un error de protocolo (porque el servidor responde con un codigo de error incorrecto). O, podríamos querer especificar explícitamente la versión si queremos que nuestro programa utilice sólo esta versión y que falle si el servidor contactado no la soporta. Por ejemplo, nuestro programa podría, necesitar hacer actualizaciones en el esquema publicado del servidor; esto sólo tiene sentido para la versión 3.

Para especificar la versión de protocolo, usamos la propiedad de entorno "java.naming.ldap.version". Aquí tenemos un ejemplo que pide la versión 2 del protocolo:

// Set up the environment for creating the initial context
Hashtable env = new Hashtable(11);
env.put(Context.INITIAL_CONTEXT_FACTORY,
    "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:389/o=JNDITutorial");

env.put("java.naming.ldap.version", "2");

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

// ... do something useful with ctx

Para pedir la versión 3, simplemente reemplazamos el 2 con un 3, de esta forma:

env.put("java.naming.ldap.version", "3");

Principio Página
© 1999-2002, Programación en castellano, s.l.
Contacto - Datos legales

ReD Internet: Hospedaje Web | envio sms gratis | Salvapantallas | Fondos de Escritorio, famosas | melodias moviles gratis| Gratis