Olá, estou com um problema de filtros na minha aplicação Web, onde TODAS AS REQUISIÇÕES ESTÃO SENDO FILTRADAS. Mesmo eu explicitando que quero filtrar APENAS: “/faces/restrito”. Alguém pode me mostrar onde estou errando?
Minha intenção é filtrar as requisições que vierem para o diretório “restrito”, de modo que eu possa verificar se o usuário possui “perfil” de acesso à URL.
Já pesquisei a net inteira, mas todos os exemplos são bem parecidos com o meu. Então acho que deveria funcionar. Será que pode ter algo a ver com o Primefaces que estou usando?
Obrigado pela resposta. Na verdade, “/faces” é o prefixo usado pelo Primefaces. Não tem a ver com o Netbeans, mas sim com o Primefaces. Em todo caso, isso ainda não explica o pq requisições para o “/” estão sendo redirecionadas para o meu filtro…
/faces não tem nada a ver com primefaces, quando você está utilizando JSF e faz um auto-config de projeto, ele automaticamente, dependendo da IDE, atribui o padrão de URL do servlet JSF como /faces, você pode inclusive trocar o /faces pelo que você quiser, por exemplo “/faces” por “*.algo”. Isso ocorre quando você cria o projeto, e não quando você importa o jar do primefaces.
Posta o seu web.xml inteiro aqui que fica mais fácil analizar
Obrigado pelos esclarecimentos! Realmente eu me confundi… testei a solução que vocês deram de retirar o “/faces” do caminho do filtro, mas agora está fazendo com que o sistema não peça autenticação em momento nenhum.
O filtro não é chamado nunca, pois a URL solicitada é “/faces/restrito/index.xhtml” e o filtro ficou apenas para “/restrito/*”. Se eu voltar o filtro para “/faces/restrito/*” aí volta a pedir autenticação corretamente.
A questão é que para o filtro, a URL é composta pelo “/faces”, independemente se foi o Netbeans ou o Primefaces quem adicionou esse prefixo.
Será que pode ter algo a ver com o Faces Servlet estar executando antes do filtro? Ou algo parecido?