Fecha de creación del tutorial: 2008-09-19
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.
Anímate y coméntanos lo que pienses sobre este tutorial
Puedes opinar o comentar cualquier sugerencia que quieras comunicarnos sobre este tutorial; con tu ayuda, podemos ofrecerte un mejor servicio.
| Autor | Mensaje de usuario registrado |
|---|
- Puedes inscribirte en nuestro servicio de notificaciones haciendo clic aquí.
- Puedes firmar en nuestro libro de visitas haciendo clic aquí.
- Puedes asociarte al grupo AdictosAlTrabajo en XING haciendo clic aquí.
- Añadir a favoritos Technorati.
Esta obra está licenciada bajo licencia Creative Commons de
Reconocimiento-No comercial-Sin obras derivadas 2.5
Recuerda
Autentia te regala la mayoría del conocimiento aquí compartido (Ver todos los tutoriales). Somos expertos en: J2EE, Struts, JSF, C++, OOP, UML, UP, Patrones de diseño ... y muchas otras cosas.
¿Nos vas a tener en cuenta cuando necesites consultoría o formación en tu empresa?, ¿Vas a ser tan generoso con nosotros como lo tratamos de ser con vosotros?
Somos pocos, somos buenos, estamos motivados y nos gusta lo que hacemos ...
Autentia = Soporte a Desarrollo & Formación.
Tutoriales recomendados
| Nombre | Resumen | Visitas | Valoración | Votos | ||
|---|---|---|---|---|---|---|
| JavaBean Datasource Ireport | La particularidad del caso que nos ocupa, es conseguir que la fuente de datos del informe sea una lista de JavaBeans y no una consulta definida previamente en el informe. | 2009-12-14 | 1260 | Bueno | 1 | ![]() |
| Maven Assembly Plugin: empaquetando aplicaciones con Maven para la ejecución de procesos batch. | Examinamos cómo llevar a cabo el empaquetado de nuestras utilidades batch, basadas en una capa de servicios y cómo hacer la distribución independiente del entorno. | 2009-11-12 | 1317 | - | - | ![]() |
| Cómo conseguir que Subversion avise a Hudson para lanzar una build | En este tutorial vamos a ver como configurar Subversion para que sea este el que avise a Hudson cada vez que hay un commit, y así se lance la build. | 2009-10-27 | 2265 | - | - | ![]() |
| Cómo instalar Hudson en Apache Tomcat | Instalar Hudson en Apache Tomcat | 2009-10-26 | 2608 | Muy bueno | 1 | ![]() |
| Mavenizar Liferay SDK | En este tutorial vamos a ver unos sencillos pasos para poder hacer plugins de tipo portlet para Liferay adaptando el entorno de desarrollo Liferay Plugins SDK | 2009-09-27 | 1281 | Regular | 1 | ![]() |
| EJB 3.0 y pruebas unitarias con Maven, JUnit 4 y Apache Open EJB. | Continuamos buscando una buena solución para llevar a cabo test de EJBs, ahora con OpenEJB. | 2009-09-23 | 2436 | - | - | ![]() |
| EJB 3.0 y pruebas de persistencia con Maven, JUnit 4 y Embedded JBoss sobre Java 6. | Damos continuidad al tutorial EJB 3.0 y pruebas unitarias con Maven, JUnit 4 y Embedded JBoss Java 6, probando el llevar a cabo un test de persistencia de un EJB de entidad, bajo soporte de EJB de servicio que implementa el patrón dao, en el mismo entorno | 2009-09-14 | 2692 | Muy bueno | 1 | ![]() |
| Enlazar Bugzilla con MavenChangesPlugin | En este tutorial veremos como enlazar Bugzilla con MavenChangesPlugin | 2009-09-11 | 1156 | - | - | ![]() |
| Release Bugzilla Maven Plugin | En este tutorial vamos a mostrar como automatizar un conjunto de acciones que hay que hacer siempre en los sistemas de gestión de incidencias, tales como dar de alta una nueva versión del producto, cerrar las incidencias que soluciona la nueva versión, et | 2009-09-11 | 1395 | - | - | ![]() |
| Sobre las reglas de codificación o... ¿de dónde salen esos caracteres "raros"?. | En este tutorial vamos a tratar de dar algo de luz a los errores que tenemos habitualmente con la codificación de caracteres en aplicaciones en las que se ven implicados varios sistemas que intercambian o almacenan información. | 2009-09-08 | 4003 | Muy bueno | 1 | ![]() |
Nota:
Los tutoriales mostrados en este Web tienen como objetivo la difusión del conocimiento.
Los contenidos y comentarios de los tutoriales son responsabilidad de sus respectivos autores.
En algún caso se puede hacer referencia a marcas o nombres cuya propiedad y derechos es de sus respectivos dueños. Si algún afectado desea que incorporemos alguna reseña específica, no tiene más que solicitarlo.
Si alguien encuentra algún problema con la información publicada en este Web, rogamos que informe al administrador rcanales@adictosaltrabajo.com para su resolución.







