Archiva: gestión de repositorios maven (III)

0
9171

Archiva: Gestión de repositorios maven (III).

1. Introducción

Tanto Archiva como Continuum utilizan un framework llamado RedBack que añade de forma sencilla la funcionalidad de autenticación, autorización y gestión de usuarios en aplicaciones web que utilicen Plexus como contenedor. Muchos de los parámetros de seguridad que vienen por defecto en Archiva puede ser modificados añadiendo un fichero de configuración. RedBack divide esos parámetros en varios grupos. Los más importantes son:

  • JDBC Setup
  • Email Settings
  • Auto Login Settings
  • Default Username Values
  • Security Policies
  • Password Rules
  • LDAP settings

Todas las propiedades que se personalicen deben estar en un fichero con nombre security.properties situado en el directorio conf de nuestra instalación de Archiva o en el directorio .m2 del HOME del usuario que inició Archiva.

2. JDBC Setup

Archiva utiliza por defecto Derby como sistema gestor de base de datos. Archiva trabaja con dos modelos: uno para los datos de los usuarios y otro para los datos de los repositorios. Entre las propiedades que podemos personalizar se encuentran:

  • jdbc.driver.name (org.apache.derby.jdbc.EmbeddedDriver): driver de acceso a la base de datos de usuario y repositorios.
  • jdbc.url (jdbc:derby:${plexus.home}/database;create=true): dirección de acceso a la base de datos.
  • jdbc.username (sa): nombre del usuario que se utiliza para conectarse a la base de datos
  • jdbc.password: contraseña que se utiliza para conectarse a la base de datos.

3. Email Settings.

Archiva utiliza un servidor de correo como parte del proceso de validación y reactivación de las cuentas creadas. Su configuración es fundamental para el correcto funcionamiento de la aplicación, aunque puede desactivarse añadiendo la propiedad email.validation.required=false en el fichero security.properties.

  • email.jndiSessionName (java:comp/env/mail/Session): jndi de acceso al objeto JavaMail Session
  • email.smtp.host (localhost): maquina donde se encuentra situado el servidor de correo.
  • email.smtp.port (25): puerto donde se encuentra escuchando nuestro servidor de correo.
  • email.smtp.ssl.enabled (false): propiedad para activar el acceso a servidores de correos utilizando el protocolo SSL.
  • email.smtp.tls.enabled (false): propiedad para activar el acceso a servidores de correos utilizando el protocolo TLS.
  • email.smtp.username: nombre de usuario utilizado para enviar los correos.
  • email.smtp.password: contraseña del usuario utilizado para enviar los correos.
  • email.from.address (${user.name}@localhost): dirección de correo que se establecerá en el campo «from» de los correos.
  • email.from.name: nombre del usuario que se adjuntará a la dirección de correo del campo «from».
  • email.validation.required (true): propiedad que permite activar/desactivar la confirmación del alta de los usuarios.
  • email.validation.timeout (2880): periodo de tiempo en minutos que el usuario tiene para poder confirmación el correo de activación.
  • email.validation.subject (Welcome): valor utilizado en el campo «Asunto» en los correo de activación de los usuarios.
  • email.feedback.path (/feedback.action): valor utilizado como enlace de acceso a la aplicación desde los correos. Si empieza por «/» se añade al final del valor de la variable application.url o puede incluirse valores como mailto:xxx@yyy.com.

4 Auto Login Settings.

Archiva por defecto tiene activada la funcionalidad de auto login, es decir, un usuario una vez logado no necesitaría hacerlo de nuevo en la aplicación hasta que se expire el periodo de auto login, siempre y cuando el usuario seleccione el check de «Remember me» del formulario de entrada. Esta característica es crítica y más si se dejase con los valores por defecto que tiene configurado Archiva, cuyo periodo de expiración del auto login es de un año.

  • security.rememberme.enabled (true): propiedad que activa/desactiva la capacidad de auto login en la aplicación.
  • security.rememberme.timeout (525600): periodo de expiración del auto login en minutos.
  • security.signon.timeout (30): tiempo de expiración de la sesión.

5 Default Username Values.

Archiva también nos permite establecer los usuarios que por defecto tendrán el rol de administrador e invitado en la aplicación.

  • redback.default.admin (admin): lista de usuarios que tendrán el rol de administrador.
  • redback.default.guest (guest): lista de usuarios que tendrán el rol de invitado.

6 Security Policies.

Existen ciertas propiedades que nos permiten cambiar comportamientos en la política de seguridad de las contraseñas. Archiva por defecto viene configurado con una política que puede ser demasiado restrictiva en entornos de desarrollo y es susceptible de ser modificada.

  • security.policy.password.previous.count (6): número de contraseña previas que no podemos repetir.
  • security.policy.password.expiration.enabled (true): permite activar/desactivar la expiración de la contraseña.
  • security.policy.password.expiration.days (90): número de días que la contraseña será validad desde el último cambio.
  • security.policy.password.expiration.notify.days (10): número de días que Archiva notifica al usuario de estar próximo la expiración de contraseña.
  • security.policy.allowed.login.attempt (10): número de acceso erróneos a Archiva antes de bloquear la cuenta.
  • security.policy.strict.force.password.change.enabled (true): permite activar/desactivar el proceso de cambio de contraseña cuanto ésta ha caducado.

7 Password Rules.

También se nos permite modificar el formato que deseamos admitir en las contraseñas.

  • security.policy.password.rule.alphanumeric.enabled (false): permite activar/desactivar la obligación de que la contraseña contenga caracteres alfanúmericos.
  • security.policy.password.rule.alphacount.enabled (true): permite activar/desactivar la obligación de que la contraseña contenga un número de caracteres alfanuméricos como mínimo.
  • security.policy.password.rule.alphacount.minimum (1): número mínimo de caracteres alfanumérico permitidos.
  • security.policy.password.rule.characterlength.enabled (true): permite activar/desactivar la obligación de que la contraseña contenga un número mínimo/máximo de caracteres.
  • security.policy.password.rule.characterlength.minimum (1): número mínimo de caracteres.
  • security.policy.password.rule.characterlength.maximum (24): número máximo de caracteres.
  • security.policy.password.rule.musthave.enabled (true): permite activar/desactivar la obligatoriedad de rellenar la contraseña.
  • security.policy.password.rule.numericalcount.enabled (true): permite activar/desactivar la obligación de que la contraseña contenga números.
  • security.policy.password.rule.numericalcount.minimum (1): número mínimo de números.
  • security.policy.password.rule.reuse.enabled (true): permite activar/desactivar la comprobación que hace Archiva para saber si la contraseña nueva coincide con algunas de las anteriores (relacionada con la propieadad security.policy.password.previous.count).
  • security.policy.password.rule.nowhitespace.enabled (true): permite activar/desactivar que la contraseña contenga o no espacios.

8 LDAP settings.

Por defecto, el proceso de autenticación de los usuarios en Archiva se realiza contra la base de datos «users» que es gestionada por él mismo. Este comportamiento puede ser modificado y hacer que Archiva utilice un LDAP. Al tratarse un proceso de configuración más complicado lo dejaremos para un próximo tutorial.

9 Conclusiones.

Como habéis podido ver, Archiva permite modificar una gran variedad de parámetros, lo que nos brinda una gran flexibilidad para utilizarlo en arquitecturas muy diferentes.

DEJA UNA RESPUESTA

Por favor ingrese su comentario!

He leído y acepto la política de privacidad

Por favor ingrese su nombre aquí

Información básica acerca de la protección de datos

  • Responsable:
  • Finalidad:
  • Legitimación:
  • Destinatarios:
  • Derechos:
  • Más información: Puedes ampliar información acerca de la protección de datos en el siguiente enlace:política de privacidad