Bom dia colegas,
Estou usando um filtro para trazer a página atual e em cima disso fazer uma crítica se o usuário tem acesso a ela ou não.
Só que o meu filtro traz apenas a página que fez a requisição e não a pagina atual.
Já tentei usar <redirect/> mas não funciona.
O que eu faço para fazer meu filtro trazer a página atual de fato ???
Este é um trecho do meu filtro:
public class FiltroListener implements PhaseListener {
public void afterPhase(PhaseEvent event) {
//Obtém o FacesContext.
FacesContext facesContext = event.getFacesContext();
//Armazena a página que fez a requisição (a string da pág. atual ex: "/pag.jsf")
String currentPage = facesContext.getViewRoot().getViewId();
//Faz a verificação se é a página de login.
boolean isLoginPage = (currentPage.lastIndexOf("Login.jsp") > -1);
//Obtém a sessão (essa mesma onde você deverá guardar seu usuário no nível de sessão com descritor currentUser).
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
Object currentUser = session.getAttribute("currentUser");
E esse é minha navegação no faces-config.xml :
<navigation-rule>
<from-view-id>/Menu/MenuPrincipal.jsp</from-view-id>
<navigation-case>
<from-outcome>cidades</from-outcome>
<to-view-id>/Cadastros/CadastroCidades.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>uf</from-outcome>
<to-view-id>/Cadastros/CadastroUF.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>paises</from-outcome>
<to-view-id>/Cadastros/CadastroPaises.jsp</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>logout</from-outcome>
<to-view-id>/Login.jsp</to-view-id>
</navigation-case>
</navigation-rule>