En Seam 3, por defecto luego de loguearse sale un Welcome, usuario. que en una aplicación en español puede resultar medio ‘chulo’.

Éste no es un FacesMessage >>, y para cambiarlo hay que sobrescribir el método postAuthenticate que se encuentra en org.jboss.seam.security.SecurityEventMessages >>.

¿Pero cómo diantres se hace éso?

Éste post >> recuerda la anotación @Specializes de CDI que permite que los métodos observadores de un bean que extiende a otro ‘opaquen’ los de este último (o algo por el estilo, a lo programador hindú)

@Requires("org.jboss.seam.international.status.Messages")
@ApplicationScoped
@Specializes
public class SobrescribirSaludo extends SecurityEventMessages {

@Inject private Identity id; //ver nota de más abajo
private static final String DEFAULT_LOGIN_SUCCESSFUL_MESSAGE = "Wena washo";

@Override
public void postAuthenticate(@Observes PostAuthenticateEvent event, Messages messages) {
messages.info(DEFAULT_LOGIN_SUCCESSFUL_MESSAGE, id.getUser().getId());
}
}

Nótese que estoy inyectando Identity como propiedad a pesar que en la clase que linkeé más arriba éste tiene su punto de inyección como parámetro. Me imagino que debe ser diferencia de versiones (estoy usando Seam 3.0.0.) ya que el método que estoy sobrescribiendo no lo recibe.

Gracias totales.

Este sitio utiliza cookies.    Leer más