Sistema de Nombrado en Java (JNDI) y II

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");

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR