openxava
Blog

27 de septiembre del 2022

XavaPro 7.0 disponible

XavaPro 7.0 tiene las siguientes novedades:

  • Soporte de Maven.
  • Código propio para refinar o sobrescribir la lógica de autentificación por defecto. 
  • Funciona con OpenXava 7.0.
Más información sobre XavaPro

Soporte de Maven

Hemos hecho un esfuerzo hercúleo para refactorizar XavaPro para que sea compatible con Maven. Como resultado ahora es más fácil actualizar de OpenXava a XavaPro y actualizar a una nueva versión de XavaPro.
Para actualizar a XavaPro 7 desde XavaPro 6.x, sigue los siguientes pasos:

  1. Instala XavaPro en tu repositorio Maven local. Si eres un cliente Enterprise recibirás la distribución de XavaPro 7 con las instrucciones para instalarlo en tu repositorio.
  2. Usa OpenXava Studio 7 para crear un proyecto nuevo.
  3. Edita el pom.xml de tu nuevo proyecto y cambia la dependencia de openxava a xavapro. Más sobre esto abajo.
  4. Copia el código desde tu proyecto actual al nuevo, siguiendo las instrucciones de migración para OpenXava 7.0.

Para el punto 3, edita el pom.xml, busca estas líneas:

<dependency>
    <groupId>org.openxava</groupId>
    <artifactId>openxava</artifactId>
    <version>${openxava.version}</version>
</dependency>

Y cámbialas por estas otras:

<dependency>
    <groupId>com.openxava</groupId>
    <artifactId>xavapro</artifactId>
    <version>${openxava.version}</version>
</dependency>

Después haz un mvn clean install en tu proyecto.

Código de autentificación personalizado

En XavaPro 7.0 puedes definir tu propia lógica de autentificación de usuarios. Para ello has de crear una clase que implemente la interfaz ISignInHelperProvider. El caso típico sería refinar la manera estándar en que XavaPro autentifica a los usuarios, para eso extiende ProSignInHelperProvider, de esta manera:

package com.miempresa.miaplicacion.impl;

import javax.servlet.*;
import org.openxava.util.*;
import com.openxava.naviox.impl.*;

public class MiPropioSignInHelperProvider extends ProSignInHelperProvider {
	
    @Override
    public boolean isAuthorized(
        ServletRequest request, String userName, 
        String password, Messages errors, String unauthorizedMessage) 
	{
        // Esta es tu lógica personalizada de autentificación
        if (userName.equals("admin") && password.equals("masterkey")) return true; 
		
		
        // Aquí delegamos en la lógica de autentificación por defecto de XavaPro
        return super.isAuthorized(
            request, userName, password, errors, unauthorizedMessage);
    }

}

En este caso la lógica es simple, si el usuario teclea "masterkey" como clave para el usuario "admin" el usuario accede a la aplicación como "admin", en caso contrario se aplica la lógica de autentificación por defecto de XavaPro. Sin embargo, aquí puedes escribir cualquier lógica que quieras, incluyendo llamadas a servicios web, leer de tu propia base de datos de usuarios, consultar tu directorio LDAP en la manera que tu quieras, etc.

Para que tu aplicación use la clase de arriba para autentificación has de añadir la siguiente entrada en el archivo naviox.properties de tu proyecto: 

signInHelperProviderClass=com.miempresa.miaplicacion.impl.MiPropioSignInHelperProvider

Pruébalo tu mismo

Demo: https://www.openxava.org/xavaprotest (Usuario: demo, Contraseña: demo)

Si quieres probar las facilidades de administración responde a este correo preguntando por la clave del administrador.
Si quieres probar las características móviles accede a la URL de arriba usando tu teléfono móvil.

Te invitamos a que vayas a la página de XavaPro para ver más cosas.

Si eres un cliente Enterprise recibirás un correo electrónico con la actualización a la edición Enterprise.

blog comments powered by Disqus

English