Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

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


  • Descargamos el fichero
    View file
    namesuplantacion_arqetipo_v2.0.19.zip
    height250
    en la raíz del proyecto, y los descomprimimos con Extraer aquí.
  • Hay que revisar la página tenga algunos suplantarUsuario.xhtml, 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 acceder a ella.


La suplantación de identidad es el proceso por el que un usuario perteneciente a una aplicación, asume el papel de otro usuario (también perteneciente a la aplicación). Tras este proceso, las acciones que realice el suplantador y opciones que visualice, serán las que estén disponibles para el suplantado. Quedando registrado el suplantado como el usuario que las realiza en el log.

Para hacer una suplantación de identidad en Fundeweb 2.0, bastará con llamar al método emulateLoginSeam situado en la clase UmuIdentity, pasándole como parámetro el usuario que se quiere suplantar.

Bloque de código
languagejava
themeEclipse
	/**
	 * Emula un Login en SEAM ya que estamos Loggeados en el CAS
	 * @param user usuario que queremos suplantar
	 */
	public void emulateLoginSeam(String user) {
		preAuthenticate();
 
		this.clean(true);
		// Metemos el principal en el identiy la unica manera es esta (simula un login de Seam)
		this.acceptExternallyAuthenticatedPrincipal(new SimplePrincipal(user));
 
		// El credential sin SESSION directo
		getCredentials().setUsername(user);
 
		postAuthenticate();
 
		if (Events.exists()) {
			Events.instance().raiseEvent(EVENT_LOGIN_SUCCESSFUL);
		}
	}

Tras esta llamada, se llamará inmediatamente, en el UmuIdentityLoader, a toda la carga de datos asociados a ese usuario (al estar anotada por el método @Observer(“org.jboss.seam.security.loginSuccessful”)

En caso de que hayamos añadido algo al método loadDataAuthentication como se explica en la guía de autorización en habría modificar el código para hacer estas tareas antes de llamar al método emulateLoginSeam.

@In UmuIdentity identity;   public void suplantarIdentidad(){ .... //Métodos previos a la emulación .... identity.emulateLoginSeam(user); }
Bloque de código
languagejava
themeEclipse