Professional Documents
Culture Documents
FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
/**
* Método chamado sempre apósa execução de uma
determinada PHASE
* @param event - {@link PhaseEvent}
*/
public void afterPhase(PhaseEvent event) {
System.out.println(event.getPhaseId());
FacesContext ctx = event.getFacesContext();
String paginaDestino = ctx.getViewRoot().getViewId();
System.out.println(paginaDestino);
if(event.getPhaseId().equals(PhaseId.APPLY_REQUEST_VALUES)){
FacesContext ctx = event.getFacesContext();
if(!verificarAutorizacao(urlDestino)){
//se o usuário não possuir acesso direciona para uma página de erro
ctx.getExternalContext().redirect("/jsp/paginaDeErroDeAutorizacao.xhtml");
}
}
}
/**
** Método chamado sempre antes de se executar uma
determinada PHASE
* @param event - {@link PhaseEvent}
*/
public void beforePhase(PhaseEvent event) {
System.out.println(event.getPhaseId());
FacesContext ctx = event.getFacesContext();
String paginaDestino = ctx.getViewRoot().getViewId();
System.out.println(paginaDestino);
if(event.getPhaseId().equals(PhaseId.RESTORE_VIEW)){
//AQUI DEVE FICAR A LÓGICA PARA VERIFICAR SE EXISTE UM USUÁRIO
//AUTENTICADO NA APLICAÇÃO
FacesContext ctx = event.getFacesContext();
/**
* Retorna o PhaseId da fase do ciclo de vida JSF que
* esta sendo interceptado e gerênciado pelo Controle de
acesso.
*
* @return - {@link PhaseId}
*/
public PhaseId getPhaseId() {
return PhaseId.ANY_PHASE;
}
}