Ola galera
Na hora que vc faz um regra de navegação do faces-config, a especificação diz que o JSF navega via FORWARD de uma página para outra.
O teste disso pode fazer um filtro simples que intercepta tudo, usando todos os dispachers possiveis:
<filter>
<filter-name>FiltroTeste</filter-name>
<filter-class>controle.FiltrarRestricoes</filter-class>
</filter>
<filter-mapping>
<filter-name>FiltroTeste</filter-name>
<url-pattern>/*</url-pattern>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
<dispatcher>ERROR</dispatcher>
</filter-mapping>
Em qualquer versão do JSF 1.x, vc pode navegar de uma pagina para outra que o o filtro é disparado.
Segundo informações da especificação do JSF :
Estou a 1 semana ajudando um camarada aqui no forum a implementar um filtro de autenticação para aplicações JSF 2 e pude comprovar que na versão 2 do JSF, as navegações não estão invocando o FORWARD e assim o o filtro não é disparado.
Montei um ambiente de teste com MOJARRA e MyFaces para JSF 2 e realmente não esta invocando!! Montei um ambiente teste com Mojara 1.2 e o FORWARD é chamado e filtro funciona!
Não achei nada a web sobre isso, crie um post no JBOSS Forum e no JavaRanch até agora sem respostas…
Eu sei que o ciclo de vida da execução JSF foi alterada para facelets nativamente com as paginas XHTML.
Fiz o mesmo teste JSF 2 usando paginas JSP…dai funcionou!!!
A questão por que isso não funciona com XHTML? Como ficam os projetos JSF 2 com frameworks baseados em filtros com Spring Security, JPro-Guard e até alguns JAAS? uma vez que apresentaram brechas de segurança por causa desse motivo.
Alguem tem alguma informação?