package br.com.blog.filter;
import br.com.blog.controller.LoginController;
import javax.faces.application.NavigationHandler;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
/**
*
* @author Elinaldo
*/
public class LoginPhaseListener implements PhaseListener{
private static final long serialVersionUID = 1L;
private static final String LOGIN_PAGE = "/admin/login.xhtml";
@Override
public void afterPhase(PhaseEvent event) {
FacesContext context = event.getFacesContext();
String viewId = context.getViewRoot().getViewId();
if(viewId.equals(LOGIN_PAGE)){
return;
}
LoginController loginController = context.getApplication()
.evaluateExpressionGet(context,"#{loginController}", LoginController.class);
if(!loginController.isLogado()){
NavigationHandler handler = context.getApplication().getNavigationHandler();
handler.handleNavigation(context, null, LOGIN_PAGE);
context.renderResponse();
}
}
@Override
public void beforePhase(PhaseEvent event) {
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
Olá sou novo no JSF 2.0. Sempre entro no GUJ para tirar dúvidas só que não econtrei nenhum tópico para o assunto que estou procurando se tiver podem me direcionar e peço desculpa de já se o tópico e repetido. : )
O problema é o seguinte, o filtro do JSF está funcionando está verificando se o usúario está logado, o problema é que eu não sei dizer para ele ão verificar algumas páginas tipo index. Para eu poder visualizar a página index tenho que está logado.