Usted no esta registrado, haga click aqui para registrarse!
 Inicio   Artículos   Recursos   Foros 
 

Iniciar sesión

¿No estas registrado?
Registrate en Latindevelopers.com!

 



Qué te pareció el artículo?

Excelente!!
Muy Bueno
Bueno
Regular
Pobre















Ir a la pagina : [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ]

Acceso a LDAP mediante Netscape Directory SDK

API JNDI

Mediante el API de JNDI es posible escribir cualquier tipo de programa para acceder a información en directorios LDAP, gestores de Base de datos relacionales, servicios CORBA (COS, Corba Object Service), NDS de Novell, entre otras aplicaciones. Para que un programa de Java busque información de cualquier tipo en un directorio LDAP debe indicarse dentro del programa la ubicación del directorio LDAP mediante un Naming Manager para la ubicación física del sistema. Esto es importante ya que en cualquier momento es posible cambiar el servidor físico del directorio LDAP y no será necesario la modificación de programa fuente para luego compilarlo, sino basta con cambiar los parámetros de configuración.
 

API JNDI
API JNDI

Configuración de Recursos JNDI

Para realizar una consulta a una entrada de directorio LDAP mediante la librería Netscape Directory SDK para Java, será necesario la configuración de JNDI en un servidor web, para este artículo lo voy a desarrollar en una aplicación web con Apache Tomcat. El cual trae una implementación JNDI InitialContext para cada instancia de aplicación web que se encuentre ejecutando bajo este servidor. Para esto será necesario que descarguen el instalador de Apache Tomcat y configuralo. El servidor Tomcat es una aplicación web basada en Java creada para ejecutar servlets y páginas JSP que nos ayudará para este propósito.

Para este caso se creará una aplicación web con una estructura de directorios básico, lo nombraremos ldap que se encontrará en el directorio $CATALINA_HOME/webapps Luego es necesario incluir un descriptor de la aplicación que es el archivo web.xml que contendrá la configuración de la aplicación web y estará dentro del directorio WEB-INF/ del directorio raíz de la aplicación creada, es decir $CATALINA_HOME/webapps/ldap/WEB-INF/web.xml

Las entradas InitialContext en una aplicación web son configurados en un elemento <Context> que puede estar definido en $CATALINA_HOME/conf/server.xml ó de preferencia el archivo XML del contexto de la aplicación dentro de META-INF/context.xml

Los recursos definidos en estos elementos pueden estar referidos por los siguientes elementos al utilizar la descripción de una aplicación web que se encuentra en /WEB-INF/web.xml:

 

 

Para el caso de nuestra aplicación definiremos el elemento <resource-env-ref> en el descriptor de la aplicación web.xml con el siguiente contenido.

<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">

	<web-app>
		<resource-env-ref>
			<description>
				Objeto Factory para una instancia de BeanLDAPHost.
			</description>
			<resource-env-ref-name>
				beanldaphost
			</resource-env-ref-name>
			<resource-env-ref-type>
				com.nspsac.bean.BeanLDAPHost
			</resource-env-ref-type>
		</resource-env-ref>

	</web-app>

Como habrán notado en este descriptor de la aplicación hacemos referencia a un recurso de la aplicación con el nombre beanldaphost que es de tipo de clase JavaBean com.nspsac.bean.BeanLDAPHost, que luego se implementará.

 Cada recurso JNDI disponible es configurado en base a una inclusión de los siguientes elementos dentro de un elemento <Context> ó un elemento <DefaultContext>:

Para configurar el recurso JNDI en nuestra aplicación agregamos el <Context> en el archivo de configuración $CATALINA_HOME/conf/server.xml que es el recurso que hacemos referencia con el nombre beanldaphost.

 

<Context path="ldap" docBase="ldap" reloadable="true" override="true"> 
	<Resource name="beanldaphost" auth="Container"
		type="com.nspsac.bean.BeanLDAPHost"
		factory="com.nspsac.bean.BeanLDAPHostFactory"
		iphost="localhost"
		puerto="389"
		dnbase="dc=nspsac,dc=com"
		dnmgr="cn=root"
		dnpwd="abc"
		dnraiz="ou=People"
		ctxfactory="com.netscape.jndi.ldap.LdapContextFactory"/>
 <Context>

En este recurso JNDI estará almacenado la información necesaria para acceder a un directorio LDAP desde una aplicación web; como habrán notado, este recurso utiliza una clase JavaBean y el Resource Factory que es una clase también JavaBean asociado mediante el atributo factory con el valor com.nspsac.bean.BeanLDAPHostFactory, y los demás atributos (iphost, puerto, dnbase, dnmgr, dnpwd y dnraiz) de este elemento <Resource> son información que utilizaremos dentro de las clases JavaBean para realizar la conexión hacia el directorio LDAP definido anteriormente. Adicionalmente, podemos apreciar el atributo ctxfactory asociado a un proveedor de servicios de interfaz (SPI) tal como habíamos indicado anteriormente.

 En esta configuración el atributo factory hace referencia a un Resource Factory, pero según la configuración de tomcat podemos incluir de la siguiente forma "org.apache.naming.factory.BeanFactory", y por razones de personalizar nuestra aplicación, se ha creado una clase JavaBean propio.

 

 

Browser LDAP

Acerca del Author

Nombre de usuario: iuav
Blog/URL:
Fecha de envío: 2009-10-07
Ultima Actualización:
Visualizaciones: 0

Comentarios y Consultas

  • LDAP mediante Netscape Directory SDK ...

  • + Agregar Comentario/Consulta
    -> Ver todos los comentarios
Nedstat Basic - Web site estadisticas gratuito
El contador para sitios web particulares