Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Filtro não consegue pegar cookies

Olá, boa tarde,

Fiz os exercícios anteriores conforme o gabarito, mas mesmo assim o console sempre mostra que o usuário está deslogado (o console de desenvolvedor do firefox mostra que o cookie foi criado com sucesso. Alguém poderia me apontar qual é o erro? Obrigado

Segue o código:

package br.com.alura.gerenciador.web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.alura.gerenciador.Usuario;
import br.com.alura.gerenciador.dao.UsuarioDAO;


@WebServlet("/Login")
public class Login extends HttpServlet {
    private static final long serialVersionUID = 1L;


    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        PrintWriter writer = response.getWriter();
        String email = request.getParameter("email");
        String senha = request.getParameter("senha");
        UsuarioDAO usuariodao = new UsuarioDAO();

        Usuario user = usuariodao.buscaPorEmailESenha(email, senha);

        if (user==null) {
            writer.println("Usuário ou senha invalida");
        }else {
            Cookie login = new Cookie("usuario.logado", email);
            writer.println("<html><boduy>Usuário "+email+" logado com sucesso!</body></html>");
            response.addCookie(login);
        }
    }

}
package br.com.alura.gerenciador.web;

import java.io.IOException;

import javax.servlet.*;
import javax.servlet.annotation.WebFilter;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;

@WebFilter (urlPatterns = "/*")
public class FiltroDeAuditoria implements Filter
{

    @Override
    public void destroy() {
    }

    @Override
    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain)
            throws IOException, ServletException {
        HttpServletRequest sr = (HttpServletRequest) req;
        String uri = sr.getRequestURI();
        String usuario = "<deslogado>";
        Cookie cookie = this.getUsuario(sr);
        if (cookie != null) {
            usuario = cookie.getValue();
        }
        System.out.println("Usuario "+usuario+" acessando uri "+uri);
        chain.doFilter(sr, resp);
    }

    private Cookie getUsuario(HttpServletRequest request) {
        Cookie[] cookies = request.getCookies();
        if (cookies == null) {
            return null;
        }
        for (Cookie cookie : cookies) {
            if(cookie.getName().equals("usuario.logado")){
                return cookie;
            }
        }

        return null;
    }


    @Override
    public void init(FilterConfig arg0) throws ServletException {

    }

}
1 resposta
solução!

Problema resolvido após fechar o Eclipse e reiniciar o servidor tomcat. Não sei o que aconteceu, mas voltou a funcionar como deveria.