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?