Estás viendo una versión antigua de esta página. Ve a la versión actual.

Comparar con el actual Ver el historial de la página

« Anterior Versión 8 Siguiente »

Para realizar la suplantación en aplicaciones que no la tienen, seguiremos los siguientes pasos:


  • Descargamos el fichero suplantacion_arqetipo_v2.0.19.zip en la raíz del proyecto, y los descomprimimos con Extraer aquí.
  • Hay que revisar la página suplantarUsuario.xhtml, probablemente, tenga algún problema visual, ya que esta basado en el tema corporativo.
  • Hay que revisar el fichero suplantarUsuario.page.xml, para establecer en el <restrict>, la expresión EL válida, que permite a los usuarios con permisos/roles válidos, acceder a ella.

Otro elemento a tener en cuenta en la suplantación, son los datos del usuario que va a suplantar, que hay almacenados en el Identity / UmuIdentity. Tenemos disponible en la clase UmuIdentity, los métodos:

  • protected void backupProperties( Map<String, Object> identityProperties )
  • protected void restoreProperties( Map<String, Object> identityProperties )

que permiten guardar y restaurar esos datos, como por ejemplo el UUID del usuario. En la llamada al método supplantUser() se llamará el método backupProperties(), y en la llamada al método restoreSupplanterUser() se llamará el método restoreProperties().


Estos métodos para backup/restore, se pueden sobrescribir para añadir las propiedades a salvar/restaurar, después de la suplantación. Solo son necesarias salvar/restaurar, las propiedades que no se cargan cuando se llama al método UmuIDentityLoader.loadDataLoginSuccessful(), que se ejecuta automáticamente al lanzar la aplicación el evento Identity.EVENT_LOGIN_SUCCESSFUL. Si se sobrescriben los métodos de backup/restore, siempre deben incluir una llamada al método del padre, ejemplo:

@Override
protected void backupProperties( Map<String, Object> identityProperties ) {
	super.backupProperties( identityProperties );

	// salvar propiedades especificas de mi aplicacion
    identityProperties.put( "miPropiedad", miPropiedad );
	...
}


@Override
protected void restoreProperties( Map<String, Object> identityProperties ) {
	super.restoreProperties( identityProperties );

	// restaurar propiedades especificas de mi aplicacion
    miPropiedad = identityProperties.get( "miPropiedad" );
	...
}
  • Sin etiquetas