/*
* JBoss, Home of Professional Open Source
*
* Distributable under LGPL license.
* See terms of license at gnu.org.
*/
package org.jboss.seam.wiki.core.ui;
import org.jboss.seam.annotations.Install;
import org.jboss.seam.annotations.Name;
import org.jboss.seam.annotations.Startup;
import org.jboss.seam.annotations.Observer;
import org.jboss.seam.annotations.intercept.BypassInterceptors;
import org.jboss.seam.international.StatusMessage;
import org.jboss.seam.security.FacesSecurityEvents;
import org.jboss.seam.security.Identity;
import org.jboss.seam.contexts.Contexts;
import org.jboss.seam.wiki.core.action.WikiRequestResolver;
import org.jboss.seam.wiki.core.model.User;
import org.jboss.seam.Component;
/**
* Overrides the "login failed" message and turns it into a WARN (we don't want INFO here).
* Transports "login successful" message across conversations (in the session) for redirect-after-login.
*
* @author Christian Bauer
*/
@Name("org.jboss.seam.security.facesSecurityEvents")
@Install(precedence = Install.APPLICATION, classDependencies = "javax.faces.context.FacesContext")
@BypassInterceptors
@Startup
public class WikiSecurityEvents extends FacesSecurityEvents {
@Override
public StatusMessage.Severity getLoginFailedMessageSeverity() {
return StatusMessage.Severity.WARN;
}
@Override
@Observer(Identity.EVENT_LOGIN_SUCCESSFUL)
public void addLoginSuccessfulMessage() {
Contexts.getSessionContext().set(
WikiRequestResolver.SESSION_MSG, getLoginSuccessfulMessageKey()
);
Contexts.getSessionContext().set(
WikiRequestResolver.SESSION_MSG_SEVERITY, getLoginSuccessfulMessageSeverity()
);
Contexts.getSessionContext().set(
WikiRequestResolver.SESSION_MSG_DATA, ((User)Component.getInstance("currentUser")).getFullname()
);
}
}