JSF 2.0 PhaseListener controle de Sessão criando Esseção


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.

elinaldo.java Conseguiu Resolver o problema ??? como vc fez?

Basta usar o viewId,algo tipo:

 if(!loginController.isLogado() && !(viewId.equals("index.html"))){  
            
            NavigationHandler handler = context.getApplication().getNavigationHandler();  
            handler.handleNavigation(context, null, LOGIN_PAGE);  
              
            context.renderResponse();  
        }  

P.S.:Esseção DOEU nos meus olhos.