2
respostas

Erro ao pegar o usuário logado

O erro ocorre na classe FiltroDeAuditoria, na seguinte linha:

Cookie cookie = new Cookies(req.getCookies()).getUsuarioLogado();

@Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain)
            throws IOException, ServletException {

        HttpServletRequest req = (HttpServletRequest) request;

        String uri = req.getRequestURI();

        Cookie cookie = new Cookies(req.getCookies()).getUsuarioLogado();//pega o usuário presente no cookie, se houver.

        String usuario="deslogado";
        if (cookie != null) {
            usuario = cookie.getValue();
        }
        System.out.println("Usuário " +usuario+ " acessando a URI "+uri);        

        chain.doFilter(request, response);
    }

Há uma indicação de que o método getUsuarioLogado() e o construtor Cookies(Cookie[]) NÃO estão definidos. Mas veja o código da classe Cookies:

public class Cookies {
    private final Cookie[] cookies;

    public Cookies(Cookie[] cookies) {
        this.cookies = cookies;
    }

    public Cookie getUsuarioLogado() {
        if (cookies == null)
            return null;
        for (Cookie cookie : cookies) {
            if (cookie.getName().equals("usuario.logado")) {
                return cookie;
            }
        }
        return null;
    }

}

Não consegui perceber a razão do erro. Poderiam ajudar?

2 respostas

Boa tarde Hilton, ele tá cusando no eclipse na hora de compilar? pois eu criei suas classe aqui no meu eclipse e não acusou nenhum erro.

Tenta dar um clean no projeto

Oi Guilherme, isso mesmo. Já tinha feito isso que vc está propondo mas não adiantou. Inclusive a mesma linha está presente na classe Logout e lá não acusa o erro.