Ola Pessoal, estou com um problema com Filtros, vou explanar meu problema abaixo.
Bem eu tenho o layout da minha pagina inicial o qual contem img’s e texto aonde e realizado o login.
O Servlet que realiza a criação da sessao do usuario funciona perfeitamente.
Agora quero usar um Filtro para fazer o controle de Sessao o qual era pra ser ativado para todas as requisições “/*”, para caso o usuario queira entrar direto na pagina de menu do sistema, entao o filtro vai intervir verificar se ele tem sessao valida, se tiver deixa proseguir com o comando chain.doFilter(request, response);
, senão ele envia para o login.jsp com o codigo a seguir out.println("<h2> Login obrigatório para acesso a esse recurso! </h2>");
req.getRequestDispatcher("login.jsp").include(request, response);
Codigo Inteiro do Filtro de Sessao a seguir:
[code]System.out.println(“Entrou no filtro de Sessao”);
HttpServletRequest req = (HttpServletRequest) request;
HttpSession sessao = req.getSession();
if (sessao.getAttribute("login") != null
&& sessao.getAttribute("password") != null) {
//usuario tem sessão válida e pode acessar o recurso...
chain.doFilter(request, response);
} else {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
out.println("<h2> Login obrigatório para acesso a esse recurso! </h2>");
req.getRequestDispatcher("login.jsp").include(request, response);
[/code]
como esse filtro de sessao e para todas as paginas eu tenho que burla ele caso a requisição da url que o usuario tenha feito foi direto para a “login.jsp”, entao criei o filtro com o seguinte codigo [code] System.out.println(“Entrou no filtro de Login”);
HttpServletRequest req = (HttpServletRequest)request;
req.getRequestDispatcher("/login.jsp").
forward(request, response);[/code]
bom ai começa todo meu problema, pelo que entendo de filtros se uma requisição fosse feita direto para pagina login.jsp o primeiro filtro que deveria intervir seria o de Login, e como dentro do meu filtro de login eu mando ele dispachar direto para a login.jsp ele nao deveria passar pelo de sessao!? correto?
mas nao é isso que aconteçe, sempre que faço essa resquisição para login.jsp direto ele entra no filtro de login 1x e no de sessao 2x sendo que nao era pra entrar nenhuma, como vcs podem ver o erro na img a seguir :
e alem de ele passar pelo filtro de sessao, ele redireciona para a login.jsp so que destruindo meu layout.
como e para ser:
Como fica apos passar pelo filtro :
Alguem pode me dar uma luz POR FAVOR?
Att Diego