1
resposta

Autorizador funcionando de forma incorreta

E aí pessoal.

Tem algo errado no meu autorizador que é o seguinte: eu consigo entrar normalmente no meu sistema para a próxima página. Mas quando eu vou navegar no sistema, ele me desloga inesperadamente, o que é muito estranho, já que eu estou logado.

Códigos: Meu Autorizador:

public class Autorizador implements PhaseListener {

    private static final long serialVersionUID = 1L;

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

        String nomePagina = facesContext.getViewRoot().getViewId();

        if ("/login.xhtml".equals(nomePagina)) {
            return;
        }

        Usuario usuarioLogado = (Usuario) facesContext.getExternalContext().getSessionMap().get("usuarioLogado");

        if (usuarioLogado != null) {
            return;
        }

        NavigationHandler handler = facesContext.getApplication().getNavigationHandler();
        handler.handleNavigation(facesContext, null, "login?faces-redirect=true");
        facesContext.renderResponse();
    }


    @Override
    public void beforePhase(PhaseEvent event) {
    }

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

Meu código que faz o logout no sistema (Aqui, fazendo um debug no Eclipse, ele imediatamente bate nesse método de deslogar assim que eu faço login no meu sistema):

public String deslogarNoSistema() {
        FacesContext context = FacesContext.getCurrentInstance();
        context.getExternalContext().getSessionMap().remove("usuarioLogado");
        return "login?faces-redirect=true";
    }

Alguém poderia me ajudar com isso?

1 resposta

Oi Flávia,

Estranho mesmo.

Pode postar aqui os códigos da sua página de login e do seu ManagedBean de login?