Problema ao redirecionar página

Olá, estou tendo problemas com o redirecionamento de páginas utilizando o @SessionScoped.

Primeiro vamos começar com o index.xhtml, que faz basicamente a verificação da sessão, ou seja, caso a sessão seja diferente de false, ele me redireciona para a página principal.xhtml, senão ele volta para login.xhtml.

[code]<?xml version='1.0' encoding='UTF-8' ?>

<h:body>
    
</h:body>
[/code]

Depois, temos a página login.xhtml que apenas pega os dados, e os joga no managedbean, que está referenciado como mbLogin.

[code]<?xml version='1.0' encoding='UTF-8' ?>

.::Login - OnMemo::.
<h:body>
    <h:form>
        <h:panelGrid id="painel">
            <h:outputLabel value="Usuário: "/>
            <h:inputText value="#{mbLogin.usuario}" required="true"/>
            
            <h:outputLabel value="Senha: "/>
            <h:inputSecret value="#{mbLogin.senha}" required="true"/>
            
            <h:commandButton value="Acessar" action="#{mbLogin.logar}"/>
        </h:panelGrid>
    </h:form>
</h:body>
[/code]

Para conferência, segue abaixo o managedbean:

[code]/*

  • To change this template, choose Tools | Templates
  • and open the template in the editor.
    */
    package br.com.onmemo.managed;

import br.com.onmemo.dao.UsuarioDAO;
import java.io.IOException;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext;
import javax.faces.event.ComponentSystemEvent;
import javax.servlet.http.HttpSession;

/**
*

  • @author Yehia Azanki
    */
    @ManagedBean(name = “mbLogin”)
    @SessionScoped
    public class MBLogin {

    private String usuario;
    private String senha;
    private boolean loginOK = false;

    public MBLogin() {
    }

    public String getUsuario() {
    return usuario;
    }

    public void setUsuario(String usuario) {
    this.usuario = usuario;
    }

    public String getSenha() {
    return senha;
    }

    public void setSenha(String senha) {
    this.senha = senha;
    }

    public boolean isLoginOK() {
    return loginOK;
    }

    public void setLoginOK(boolean loginOK) {
    this.loginOK = loginOK;
    }

    public String logar() {
    String target = “index”;
    try{
    if(UsuarioDAO.valida(usuario, senha)){
    loginOK = true;
    target = “principal”;
    FacesContext.getCurrentInstance().addMessage("", new FacesMessage(“Bem-Vindo”,usuario));
    }else{
    loginOK = false;
    target = “login”;
    FacesContext.getCurrentInstance().addMessage("", new FacesMessage(“Usuário ou senha inválidos!”));
    }
    }catch(Exception e){
    FacesContext.getCurrentInstance().addMessage(“errorMsg”, new FacesMessage(“Erro ao acessar o banco de dados!”));
    target = “erro”;
    }

     return target;
    

    }

    public String deslogar() {
    FacesContext fc = FacesContext.getCurrentInstance();
    HttpSession session = (HttpSession) fc.getExternalContext().getSession(false);
    session.invalidate();
    return “login”;
    }

    public void verificarAutorizacao(ComponentSystemEvent e) throws IOException {
    if(loginOK == true) {
    FacesContext.getCurrentInstance().getExternalContext().redirect(“pages/principal.xhtml”);
    }else{
    FacesContext.getCurrentInstance().getExternalContext().redirect(“pages/login.xhtml”);
    }
    }

}[/code]

A página principal.xhtml é apenas uma página simples, sem nada ainda implementado.

Depois de toda a apresentação do conteúdo, vamos ao erro, que se dá quando efetuo o login no sistema:

http://localhost:8084/OnMemo/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/pages/principal.xhtml

Podemos perceber que ele faz um monte de redirecionamentos utilizando o contexto pages.

Alguém tem uma explicação para isto?

Grato.