Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida Cookie

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;
    }
2 respostas
solução!

Olá Fernando, tudo bem ?

O seu método getUsuario, recebe a requisição, onde conseguimos pegar todos os Cookies e ai para podermos ter acesso guardamos eles na variável cookies que é um array de Cookie.

Agora vamos percorrer esse array em busca do Cookie chamado "usuario.logado", caso ele encontre este Cookie nós o retornaremos, caso contrário o retorno será nulo. O importante saber é, que se ele encontrar este Cookie significa que o usuário já havia se logado.

Em seguida fazemos a validação para ver se o Cookieexistem ou não, caso exista pegaremos o valor que está dentro dele e armazenaremos dentro da nossa variável usuario.

Espero ter ajudado !

Abraços

Opa ajudou muito, Obrigado !