Quero proteger jsps e html de acesso direto. Qual a melhor forma?

4 respostas
lfelipelias

Galera gostaria de saber de vocês qual o melhor padrão pra desenvolvimento para proteger conteudo.
Meu projeto é o seguinte. O usuario preenche o formulario e da um submit.
Essa request vai pro meu servlet que redireciona para um jsp.
Porem agora que me toquei que coloquei esse arquivo jsp dentro da raiz da aplicação, e tenho acesso direto a ela e nao gostaria disso.
Qual a melhor correção pra isso.

1- criar a pasta /WEB-INF/jsp e colocar tudo la dentro?
2 - restringir acesso a esses recursos só pra usuario logado? (mas mesmo ele estando logado nao quero q ele acesse um jsp diretamente, quando o mesmo deve ser requisitado com dados preenchidos?)

outra duvida criei um arquivo error403.html pra quando o usuario tentar fazer o login e aquele usuario nao tiver acesso ao recurso.
Consigo acessar essse recurso diretamente tambem.

Quais sao as melhores atitudes pra JSP e quais as melhores para HTML para evitar que usuarios acessem isso diretamente?

4 Respostas

Marcio_Nogueira

Coloque seus arquivos no diretório WEB-INF. Este é um diretório protegido no seu servidor, porém, os arquivos neste diretório não são encontrados pelo próprio servidor, sendo necessário redirecionar a resposta de uma página (fora de WEB-INF) para os arquivos jsp dentro de WEB-INF.

lfelipelias

Entendi mas a melhor alternativa para um bom projeto é criar uma pasta WEB-INF/jsp e colocar todoo conteudo que quero restringir la dentro? Gostaria de saber o padrao mais recomendado

Giulliano

1 - Você pode usar um Filtro.

2 - Pode configurar o web.xml para redirecionar qq chamada para *.html, *.jsp, . para uma servlet ou uma página de erro.

Marcio_Nogueira

De fato, você deve criar diretórios dentro de WEB-INF com o intuito de organizar melhor sua aplicação. Você pode criar o seguintes diretórios:
jsp - onnde serão colocados seus arquivos .jsp
img - para arquivos de imagens
css - para folhas de estilo
js - para funções em javascript

Criado 14 de outubro de 2009
Ultima resposta 14 de out. de 2009
Respostas 4
Participantes 3