Evitar acesso direto aos arquivos XHTML - JSF

2 respostas
C

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.

2 Respostas

C

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).

C

Olá pessoal, ninguém passou por isto?

agradeço qualquer direcionamento.

Criado 6 de fevereiro de 2013
Ultima resposta 14 de fev. de 2013
Respostas 2
Participantes 1