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 {
}
}