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

Sistema de Nombrado en Java (JNDI) [Parte I]
Autor: Sun
Traductor: Juan Antonio Palos (Ozito)


En esta página:


Introducción al Entorno

JNDI es un interface genérico. Para acceder a cualquier servicio de nombres/directorios, debemos especificar el proveedor de servicio a utilizar. Esto es sólo una parte de la información de configuración. Dependiendo del servicio de nombres/directorio y del proveedor de servicios podríamos necesitar especificar otra información de configuración, por ejemplo, decirle al proveedor de servicios que servidor utilizar. Especificamos la informacion de configuración en el JNDI usando propiedades de entorno. Aunque esta sección describe muchas propiedades de entorno, en general sólo necesitaremos usar una pocas.

Aquí tenemos los distintos tipos de propiedades de entorno, categorizadas por su ámbito y aplicabilidad.

Propiedades Estándar de Entorno JNDI

El JNDI define propiedades de entorno que son estándars para todos los proveedores de servicios. No todas las propiedades estándars se pueden aplicar a todos los proveedores de servicios. Pero cuando un proveedor de servicios usa una de estas propiedades, debe interpretarla de acuerdo a la definición especificada por el JNDI.

Estas propiedades tienen el prefijo "java.naming." Los interfaces Context y LdapContext declaran constantes para estas propiedades. Aquí tenemos una lista de las propiedades estándars de entorno JNDI.

Property Name Description
java.naming.applet Un ejemplar de java.applet.Applet. Los parámetros de este ejemplar de applet se usan como ciertas propiedades de entono. Ver la siguiente sección para más detalles.

Constante: Context.APPLET

Default: Niinguno.

java.naming.authoritative Un string ("true" o "false") que especifica la fuente autoritaria del servicio solicitado. Si seleccionamos esta propiedad a "true", cuando le solicitamos al proveedor de servicio la fuente de servicio más autoritaria (como un servidor maestro). De otra forma, la fuente, no tiene (pero puede ser) autoritaria.

Constante: Context.AUTHORITATIVE

Default: "false"

java.naming.batchsize La representación string de un entero que especifica el tamaño del caché preferido a utilizar cuando se devuelven datos mediante el protocolo del servicio. Puedes ir a la lección Búsquedas para ver más detalles y ejemplos.

Constante: Context.BATCHSIZE

Default: Valor por defecto del proveedor.

Ejemplo: "10"

java.naming.dns.url Un string URL que especifica los nombres del host DNS y de dominio a usar para la implementación del contexto "jndi".

Constante: Context.DNS_URL

Default: Ninguna.

Ejemplo: "dns://dnsserver/wiz.com"

java.naming.factory.control Una lista separa por dos puntos de nombres de clases de factorías de control. Cada clase debe implementar el interface ControlFactory.

Esta propiedad la usa ControlFactory.getControlInstance(), que a su vez es usado por los proveedores de servicos. Puedes ir a la lección Controles y Extensiones  para ver más detalles.

Constante: LdapContext.CONTROL_FACTORIES

Default: La lista vacía.

Ejemplo: "com.wiz.jndi.ldap.ControlFactory: vendorX.ldap.VendorXControlFactory"

java.naming.factory.initial Nombre de la clase de la factoría de contexto inicial. La clase debe implementar el interface InitialContextFactory.

Esta clase es ejemplarizada por el constructor de InitialContext.

Debemos configurar esta propiedad, a menos que sólo queramos pasar nombres URL a los métodos de InitialContext.

Constante: Context.INITIAL_CONTEXT_FACTORY

Default: Ninguno.

Ejemplo: "com.sun.jndi.ldap.LdapCtxFactory"

java.naming.factory.object Una lista separada por dos puntos de nombres de clases Factorías de objetos. Cada clase debe implementar los interfaces ObjectFactory o DirObjectFactory.

Esta propiedad la usan  NamingManager.getObjectInstance() y DirectoryManager.getObjectInstance(), que su vez son usados por los proveedores de servicio. Puedes ir a la sección Objetos Java Objects y el Directorio para ver más detalles.

Constante: Context.OBJECT_FACTORIES

Default: La lista vacía.

Ejemplo: "com.wiz.jndi.ldap.AttrsToRemote: com.wiz.jndi.ldap.AttrsToCorba"

java.naming.factory.state Una lista separada por dos puntos de nombres de clases de factorías de estado. Cada clase debe implementar los intefaces StateFactory o DirStateFactory.

Esta propiedad la usan NamingManager.getStateToBind() y DirectoryManager.getStateToBind(), que a su vez es usada por el proveedor del servicio. Puedes ir a la sección Objetos Java y el Directorio para ver más detalles.

Constante: Context.STATE_FACTORIES

Default: La lista vacía.

Ejemplo: "com.wiz.jndi.ldap.RemoteToAttrs:com.wiz.jndi.ldap.CorbaToAttrs"

java.naming.factory.url.pkgs Una lista separada por dos puntos de prefijos de paquetes de factorías de contexto URL. El prefijo consiste en la id del esquema URL y un sufijo para construir el nombre de la clase, de esta forma.

prefix.schemeId.schemeIdURLContextFactory Por ejemplo, supongamos que el prefijo es "vendorZ.jndi" y la id del esquema URL es "ldap", el nombre completo de la clase es vendorZ.jndi.ldap.ldapURLContextFactory. Cada clase cuyo nombre se construya de esta forma debe implementar los interfaces  ObjectFactory o DirObjectFactory y seguir las reglas de procesamiento de nombres URL. El prefijo del paquete "com.sun.jndi.url" siempre se añade al final de la lista especificada para esta propiedad. Esta propiedad se usa cuando un nombre de URL se pasa a los métodos InitialContext.

Puedes ir a la lección URL para ver más información.

Constante: Context.URL_PKG_PREFIXES

Default: La lista vacía.

Ejemplo: com.wiz.jndi.url:vendorZ.jndi

java.naming.language Un string que especifica el idioma preferido para usarlo con este servicio.

Los valores de está propiedad están definidos por la RFC 1766.

Constante: Context.LANGUAGE

Default: El valor por defecto del proveedor.

Ejemplo: "en-US"

java.naming.provider.url Una string URL para configurar el proveedor de servicio especificado por la propiedad "java.naming.factory.initial".

Constante: Context.PROVIDER_URL

Default: El valor por defecto del proveedor.

Ejemplo: "ldap://localhost:389/o=JNDITutorial"

java.naming.referral Un string que especifica cómo debería manejar las referencias el proveedor de servicio, una de "throw", "ignore", o "follow". Puedes ir a la lección Referencias para ver detalles y ejemplos.

Constante: Context.REFERRAL

Default: El valor por defecto del proveedor.

Ejemplo: "throw"

java.naming.security.authentication Un string que especifica el tipo de autentifiación a utilizar; uno de "none", "simple", "strong", un string específico del proveedor. Puedes ir a la lección Seguridad para ver más detalles y ejemplos.

Constante: Context.SECURITY_AUTHENTICATION

Default: El valor por defecto del proveedor.

Ejemplo: "simple"

java.naming.security.credentials Un objeto que espeifica las credenciales de la entidad que realiza la autentificación. Su tipo está determinado por el proveedor de servicios.

Puedes ir a la lección Seguridad para ver más detalles y ejemplos.

Constante: Context.SECURITY_CREDENTIALS

Default: El valor por defecto del proveedor.

Ejemplo: Un char[] que contenga "secret."

java.naming.security.principal Un string que especifica la identidad que realiza la autentificación.

Puedes ir a la lección Seguridad para ver más detalles y ejemplos.

Constante: Context.SECURITY_PRINCIPAL

Default: El valor por defecto del proveedor.

Ejemplo: "cn=Directory Manager, o=JNDITutorial"

java.naming.security.protocol Un string que especifica el protocolo de seguridad a utilizar. Puedes ir a la lección Seguridad para ver más detalles y ejemplos.

Constante: Context.SECURITY_PROTOCOL

Default: El valor por defecto del proveedor.

Ejemplo: "ssl"

1

Propiedades de Entorno Específicas del Servicio

Las propiedades de entorno específicas del servicio son comunes entre diferentes proveedores de servicio que implementan un protocolo o servicio particular. Por ejemplo, varios proveedores de servicios diferentes podrían implementar LDAP. Estos proveedores usarían propiedades de entorno específicas de LDAP.

Las propiedades específicas del servicio tienen el prefijo "java.naming.servicio." Por ejemplo, las propiedades específicas de LDAP tienen el prefijo "java.naming.ldap." y las propiedades específicas CORBA tienen el prefijo "java.naming.corba." Observa que estas son propiedades de entorno relacionadas con el JNDI y son usadas por los proveedores de servicios JNDI. Un servicio o subsistema como CORBA o RMI podría definir otras propiedades no relacionadas con el JNDI.

Puedes ir a la lección Miscelánea para ver ejemplos de propiedades de entorno específicas de LDAP.

Propiedades de Entorno Específicas de la Característica

Las propiedades de entorno específicas de la característica son comunes a todos los proveedores de servicios que implementan una característica particular. Por ejemplo, el proveedor de servicio LDAP y un proveedor de servicio VendorX podrían usar SASL para autentificación. Estos proveedores usarán propiedades de entorno específicas de SASL cuando configuren esta característica.

Estas propiedades tienen el prefijo "java.naming.característica." Por ejemplo, las propiedades específicas de SASL tienen el prefijo "java.naming.security.sasl." Observa que estas son propiedades de entorno relacionadas con el JNDI y usadas por los proveedores de servicios JNDI. Una característica o subsistema como SASL podría definir otras propiedades no relacionadas con el JNDI. Puedes ir a la lección Seguridad para ver algunos ejemplos de propiedades específicas de SASL.

Propiedades de Entorno Específicas del Proveedor

Las propiedades de etorno específicas del proveedor son propiedades que són usadas por un sólo proveedor. Por ejemplo, el proveedor de servicios LDAP de Sun tiene una propiedad para activar el seguimiento. (ver el ejemplo de la lección FAQ.) Una propiedad específica del proveedor debería tener un prefijo que refleje su identidad única, normalmente el nombre del paquete del proveedor de servicio.

Por ejemplo, la propiedad de seguimiento del proveedor LDAP de Sun se llama "com.sun.jndi.ldap.trace.ber".


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