Evitar acesso direto aos arquivos XHTML - JSF

Olá, fiz uma aplicação e queria que o usuário ficasse impossibilitado de acessar algumas páginas diretamente (no caso, por GET), ou seja, quero que ele siga o fluxo dos links e botões e seus direcionamentos, sem poder acessar páginas diretamente pela URL. Fui no Web.XML e coloquei

<security-constraint> <display-name> Prevenindo acesso direto </display-name> <web-resource-collection> <web-resource-name>Raw-JSF-JSP-Pages</web-resource-name> <url-pattern>/informacoes.xhtml</url-pattern> <url-pattern>/rodape.xhtml</url-pattern> <http-method>GET</http-method> </web-resource-collection> <auth-constraint> <description>Sem regras, apenas bloqueio acesso direto aos JSPs</description> </auth-constraint> </security-constraint>

e funcionou bem, evitando que o usuario digitasse “informacoes.xhtml” na barra de endereço e fosse diretamente para esta tela. No entanto, funcionou para o GET devido a linha “GET”. Simulei um post (através de um simples form em HTML) e consegui acessar diretamente, então fui no Web.xml novamente e retirei a linha “GET”, o que fez com que o GET e o POST fossem bloqueados.

Entretanto, agora surge um problema, até a navegação de um h:commandButton está sendo barrada (visto que ele dá um POST, se não me engano, ou seja barrou tudo, inclusive a navegação pelos actions):

Ou seja, não quero exigir que o usuário esteja logado, só quero evitar que ele digite a url ou que use um post através de um formulário, mas quero que o h:commandButton consiga acessar normalmente. Alguém já passou por isso? lembrando que não quero realizar controle de login, apenas deixar os direcionamentos exclusivos pelos metodos dos managedBeans.

Só um detalhe que esqueci de dizer: usando JSF 2.0.

Outra coisa: seria uma solução jogar XHTMLs dentro de WEB_INF?

Com as restrições no Web.xml funciona como eu queria (visto que não quero ter login nem nada, é somente barrar o acesso direto) mas o ruim é que barrou até quando fui pela própria aplicação (quando clico no H:commandButton que submete um h:form).

Olá pessoal, ninguém passou por isto?

agradeço qualquer direcionamento.