Realizei todos os exercícios, e aparentemente tudo funciona normalmente, porém, ele não exibe o campo usuario como "deslogado", mesmo que eu não digite nada nos campos de email e senha, ele continua exibindo no console "Usuário guilherme.silveira@alura.com.br acessando a URI /gerenciador/login".
Segue abaixo o meu 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(urlPatterns = "/login") public class Login extends HttpServlet { @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { String email = req.getParameter("email"); String senha = req.getParameter("senha"); Usuario usuario = new UsuarioDAO().buscaPorEmailESenha(email, senha); PrintWriter writer = resp.getWriter(); if (usuario == null) writer.println("
usuário ou senha inválida. "); else { Cookie cookie = new Cookie("usuario.logado", email); resp.addCookie(cookie); writer.println("Usuário logado com o email " + email + "</html"); } } }package br.com.alura.gerenciador.web;
import java.io.IOException;
import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; 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 request, ServletResponse response, FilterChain chain) throws IOException, ServletException { HttpServletRequest req = (HttpServletRequest) request;
Cookie cookie = getUsuario(req); String usuario = ""; if (cookie != null) usuario = cookie.getValue(); System.out.println("Usuario " + usuario + " acessando a URI " + req.getRequestURI()); chain.doFilter(request, response); }
private Cookie getUsuario(HttpServletRequest req) { Cookie[] cookies = req.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 { } }
Bem vindo ao nosso gerenciador de empresas! Nome: Email: Senha: