Facelets+JSF Restringir acesso direto com url

2 respostas
Tchello

Boa tarde pessoal!

Então, no meu sistema aqui to usando um PhaseListener pra restringir acesso dos usuários nao logados.
Ta funcionando muito bem mas acontece que eu quero proibir o usuário de acessar qualquer página digitando o url diretamente.
Como posso fazer isso?
Se possível, como faço pros urls nem aparecerem na barra de url do navegador?
Digo novamente: o controle de usuário está feito no PhaseListener e funcionando, mas ainda assim eu quero restringir o acesso direto digitando o url. Tem como?
Pesquiser filters, mas não to tendo muito sucesso =/
Achei esse tópico:
http://www.guj.com.br/posts/list/124003.java

Mas não ajudou muito, preciso de mais dicas de como usar filters =Z

Abraços!

2 Respostas

G

Não entendi bem. Tu queres dizer que se tu tem tua action lá:

http://localhost:8080/tuaAplicacao/cadUsuario” tu queres que se o cara digitar isso na barra de endereço não abra mesmo que essa ação exista no teu mapeamento e que usuário esteja logado?

Quanto a não ficar aparecendo na barra de endereço tu pode trabalhar com frames aonde o frame principal é o root da tua aplicação sempre e o que exisbe as telas é um outro frame. Isso fará com que não apareça na barra de endereço, mas se o usuário visualizar o código verá.

Agora se tu não quer que o usuário digite diretamente, acho que único controle que tu poderias ter é um campo hidden que conterá uma chave que fica no server despacha para o client. Dai a cada requisição ele compara essa chave com aquele cuspiu da última vez para aquela action, se for ok, continua e gera outra chave, senão cai num tratamento qualquer.

Tchello

giulianocosta:
Não entendi bem. Tu queres dizer que se tu tem tua action lá:

http://localhost:8080/tuaAplicacao/cadUsuario” tu queres que se o cara digitar isso na barra de endereço não abra mesmo que essa ação exista no teu mapeamento e que usuário esteja logado?

Exatamente!
Quero que o usuário acesso as páginas apenas se for clicando nos botoes de navegação e nunca digitandoa url diretamente no navegador.

giulianocosta:

Quanto a não ficar aparecendo na barra de endereço tu pode trabalhar com frames aonde o frame principal é o root da tua aplicação sempre e o que exisbe as telas é um outro frame. Isso fará com que não apareça na barra de endereço, mas se o usuário visualizar o código verá.

Como funciona esse negócio de frames? seria usar iframes sobre o facelets?

Muito obrigado pelas respostas!

Criado 21 de julho de 2009
Ultima resposta 22 de jul. de 2009
Respostas 2
Participantes 2