Na classe login, estamos verificando se o usuário é null, caso não criamos o cookie passando os parâmetros e adicionamos na resposta. OK
if (usuario == null) {
writer.println("<html><body>Usuário ou senha inválida</body></html>");
} else {
Cookie cookie = new Cookie("usuario.logado", email);
resp.addCookie(cookie);
writer.println("<html><body>Usuário logado: " + email
+ "</body></html>");
}
Agora na classe FiltroDeAuditoria, estou com dúvida na partes que declaramos uma variável cookie do tipo Cookie e atribuimos o getUsuario(req). Este getUsuario ele cria um array de cookies e atribui a variavel cookies, o for each procura dentro deste array o valor da variavel usuario.logado e retorna o cookie. e caso o cookie != null, o parametro getValue busca o email ?
Obrigado !
@WebFilter(urlPatterns="/*")
public class FiltroDeAuditoria implements Filter{
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
Cookie cookie = getUsuario(req);
String usuario = "<deslogado>";
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();
for (Cookie cookie : cookies) {
if (cookie.getName().equals("usuario.logado")) {
return cookie;
}
}
return null;
}