A página /endereco/pais/pais.xhtml, está acessando mesmo sem estar com sessão em login
Testei em dois navegadores.
Meu código Autorizador.java
package org.desif.util;
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;
import org.desif.model.publico.UsuarioEntity;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class Autorizador implements PhaseListener {
private static final long serialVersionUID = -8026934906847652143L;
private final Logger logger = LoggerFactory.getLogger(Autorizador.class);
@Override
public void afterPhase(PhaseEvent evento) {
FacesContext contexto = evento.getFacesContext();
String pagina = contexto.getViewRoot().getViewId();
logger.info(pagina);
if ("/index.xhtml".equals(pagina)) {
return;
}
UsuarioEntity usuario = (UsuarioEntity) contexto.getExternalContext().getSessionMap()
.get("usuarioLogadoSistema");
if (usuario != null) {
logger.info("Usuário permitido, com o login: " + usuario.getLogin());
return;
}
logger.info("Usuário não permitido.");
NavigationHandler handler = contexto.getApplication().getNavigationHandler();
handler.handleNavigation(contexto, null, "/login?faces-redirect=true");
contexto.renderResponse();
}
@Override
public void beforePhase(PhaseEvent evento) {
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}