ApacheDS: tests de integración contra un servidor LDAP embebido.

0
7985

ApacheDS: tests de integración contra un servidor LDAP embebido.

0. Índice de contenidos.


1. Introducción

Vimos hace poco cómo disponer de un servidor LDAP embebido en nuestro entorno de tets de integración con el soporte de Spring Security,
dentro del contexto de inyección de dependencias de Spring.

En este tutorial vamos a ver cómo hacer lo mismo pero sin disponer del soporte de Spring y, como consecuencia, tampoco de Spring Security.

Será tan similar que el servidor LDAP que usaremos sera también Apache Directory Server.


2. Entorno.

El tutorial, y el código que contiene, han sido escritos usando el siguiente entorno:

  • Hardware: Portátil MacBook Pro 15′ (2.4 GHz Intel Core i7, 8GB DDR3 SDRAM).
  • Sistema Operativo: Mac OS X Lion 10.7.4


3. Configuración.

Como de costumbre, haciendo uso de maven, lo primero es declarar nuestras dependencias en el fichero pom.xml:

El servidor que usaremos será Apache Directory que se alimentará en su arranque de un fichero ldif (autentia-identity-repository.ldif), con la siguiente información sobre nuestra organización:

Al igual que en el tutorial anterior, tenemos una pequeña jerarquía, con dos grupos de usuarios: administrativos y tramitadores (además del grupo de administradores ) y varios usuarios asociados a los mismos.


4. Test de integración.

Vamos a escribir, un test que comprueba el acceso y recuperación de un usuario:

En este punto nuestro test estará en ROJO (errores de compilación), porque:

  • no disponemos de la clase UserAccountRepository, que nos proporcionará acceso al repositorio de usuarios o personas,
  • no tenemos la clase UserAccount, que tendrá las propiedades de un usuario, y
  • aún no sabemos cómo configurar el servidor ldap embebido 😉

Veamos la interfaz de servicio que hemos pensado para el repositorio de usuarios

Y ahora el contenido del POJO que tendrá las propiedades de un usuario:

Ahora no tendremos errores de compilación, pero fallará la ejecución del test.


5. Implementación.

Veamos el contenido que proponemos para el repositorio de usuarios:

Recibe el contexto de ldap como dependencia en el constructor, realiza la búsqueda y mapea el resultado contra el objeto de respuesta, todo ello sin usar el soporte de plantillas de Spring.

Ahora vamos a añadir el soporte del servidor LDAP embebido a nuestro test de integración.

Hemos hecho las siguientes modificaciones:

  • nuestra clase entiende AbstractLdapTestUnit que nos va a permitir acceder al estado del servidor embebido en el entorno del test,
  • FrameworkRunner.class nos permite ejecutar el test con el soporte de apacheDS,
  • la anotación @CreateDS, establece las características estructurales de creación del servidor,
  • la anotación @CreateLDAPServer establece las caracteristicas de conectividad con el servidor,
  • con la anotación @ApplyLdifFiles podemos establecer los ficheros de carga con la estructura y datos del nuestro server para el entorno de tests.

Sin más ni menos ya disponemos del soporte para comprobar nuestra lógica de acceso al directorio LDAP.


6. Referencias.


7. Conclusiones.

Este tutorial responde al… pero,… ¿y si no tengo el soporte de Spring? 😉

Un saludo.

Jose

jmsanchez@autentia.com

Dejar respuesta

Please enter your comment!
Please enter your name here