Erro com Phaselistener

Bom dia, Pessoal

estou desenvolvendo um sistema com jsf 2.0 e tomcat 7, ao utilizar a classe abaixo para validar se o usuario esta logado ou não aparece o seguinte erro: “Esta página da web tem um loop de redirecionamento” no chrome e nos demais navegadores não aparece nada. Se eu retirar a linha 25 e 26 o sistema executa normal, alguem poderia me ajudar?

package br.com.entecnologia.util;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;

/**
 *
 * @author Everton Novaski
 */
public class ValidaPagina implements PhaseListener {

    private static final String USER_LOGIN_OUTCOME = "loginInvalido";

    @Override
    public void afterPhase(PhaseEvent event) {
        FacesContext context = event.getFacesContext();

        if (userExists(context)) {
            return;
        } else {
            if (requestingSecureView(context)) {
                context.responseComplete();
                context.getApplication().getNavigationHandler().handleNavigation(context, null, USER_LOGIN_OUTCOME);
            }
        }
    }

    @Override
    public void beforePhase(PhaseEvent event) {
    }

    @Override
    public PhaseId getPhaseId() {
        return PhaseId.RESTORE_VIEW;
    }

    private boolean userExists(FacesContext context) {
        ExternalContext extContext = context.getExternalContext();
        return (extContext.getSessionMap().containsKey(Login.USER_SESSION_KEY));
    }

    private boolean requestingSecureView(FacesContext context) {
        ExternalContext extContext = context.getExternalContext();
        String path = extContext.getRequestPathInfo();
        return (!"/index.xhtml".equals(path) && !"/cadastrar.xhtml".equals(path));
    }
}