Filtro para Login

3 respostas
allancmm

Olá pessoal, estou com um problema aki e novamente gostaria da ajuda de vcs. Vamos lá entao. Estou desenvolvendo uma aplicacao web com JSP e Servlet. Nesta aplicacao, cada servlet verifica se o usuario está logado, via sessao. Caso nao esteja logado, redireciona para a pagina de login. Mas quero mudar isto, usar um filtro que faz esse trabalho. Criei o filtro e configurei no web.xml. Nos teste que eu fiz, a configuracao do web.xml fazia com que o filtro fosse chamado sempre que uma determinada pagina especifica fosse solicitada. Até ai funcinou perfeitamente, mas quero que todas as servlets e todas as paginas, com excecao da pagina de login, disparem o filtro. Assim, caso o usurio nao esteja logado, ele nao conseguirar acessar nada alem da pagina de login. A questao eh a seguinte: Como configuro, no web.xml, para que isso seja possivel?

P.S. Aproveitando o topico, como posso usar a diretiva include file - <%@ include file="…/cabecalho.jsp" %>, no caso de a pagina atual nao esta na mesma pasta da pagina que quero incluir? Valew pessoal.

3 Respostas

aeciovc

se no lugar de colocar:

&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;

vc colocar:

&lt;url-pattern&gt;*&lt;/url-pattern&gt;

agora pra não fazer isso com a do próprio login tem que tratar no filtro.

allancmm

aeciovc:
se no lugar de colocar:

&lt;url-pattern&gt;*.jsp&lt;/url-pattern&gt;

vc colocar:

&lt;url-pattern&gt;*&lt;/url-pattern&gt;

agora pra não fazer isso com a do próprio login tem que tratar no filtro.

Eu já havia tentado isto, mas garrei justamente no tratamento do filtro, nao sei como verificar, no filtro, se o usuario está tentando acessar a pagina de login, mas valew assim mesmo kra. No aguardo de novas sugestoes, flw.

allancmm

Pessoal, seguindo a orientação de colega acima, eu consegui resolver meu problema. E para que tem a mesma duvida, a minha solucao foi a seguinte: Usei 2 filtros, o primeiro foi configurado para ser chamado quando a pagina de login for requisitada, ele nao faz praticamente nada, apenas permite que acesse a pagina de login sem passar pelo segundo filtro, este, o segundo filtro, nao permite que nenhum recurso seja acessado a menos que o login do usuario esteja na sessao. Assim, em resumo, quando o usuario tenta acessar a pagina de login, eh disparado o primeiro filtro, que permite que ele efetivamente acesse a pagina, quando ele informa seu login e senha, eh disparado novamente o primeiro filtro que o redireciona para a servlet que verifica os dados, caso esteja Ok, eh redirecionado para uma pagina de boas vindas, mas antes disso, passa no segundo filtro que verifica se ele esta logado. Nao sei se ficou confuso, quem nao entendeu, posta ai, valew pessoal…

Criado 8 de outubro de 2010
Ultima resposta 13 de out. de 2010
Respostas 3
Participantes 2