Boa tarde! Eu estou com bastante dificuldades nessa parte do caminho "formação java" mas estou tentando ir na base do "bola pra frente" pra seguir com o curso e depois procuro outro lugar pra aprender essa parte da matéria (porque eu entendo que o curso precisa ser atualizado e tudo mais, porém to correndo contra o tempo) Então tentei um código para funcionar o tempo dos cookies, porém não está dando certo... alguém poderia me ajudar por favor?
1ºedit: Ahhh, e porque no código do professor o String usuario = "<deslogado>";
ele volta aparecer se ele já foi informado no getUsuario
??
2ª edit: Aliás, eu estava olhando o código no lugar errado. Ele ta funcionando (eu acho). Caso ele esteja, podem me ajudar qual o erro dele? Porque ele está claramente diferente ao do professor!! Muito obrigado pela ajuda!
package br.com.alura.gerenciador.web;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
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;
import javax.servlet.http.HttpServletResponse;
@WebFilter(urlPatterns = "/*")
public class FiltroDeAuditoria implements Filter {
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse res = (HttpServletResponse) response;
Cookie[] cookies = req.getCookies();
String uri = req.getRequestURI();
String usuario = getUsuario(req);
for (Cookie cookie : cookies) {
cookie.getName().equals("usuario.logado");
cookie.setMaxAge(10*60);
res.addCookie(cookie);
}
System.out.println("Usuario " + usuario + " acessando a URI " + uri);
chain.doFilter(request, response);
}
private String getUsuario(HttpServletRequest req) {
String usuario = "<deslogado>";
Cookie[] cookies = req.getCookies();
if (cookies == null) return usuario;
for (Cookie cookie : cookies) {
if (cookie.getName().equals("usuario.logado")) {
usuario = cookie.getValue();
}
}
return usuario;
}
}