Фильтр по умолчанию является самым первым, что выполняется по HTTP-запросу. Атрибуты запроса обычно управляются кодом на стороне сервера. Кто / что должен был установить атрибут запроса, прежде чем этот фильтр выполнит свою работу?
Вас не смущает, как работают HTTP-запросы / ответы? Запрос завершен / обработан, включая все атрибуты, когда соответствующий ответ завершен. Каждый последующий запрос является совершенно новым, который не содержит вообще те же атрибуты, что и предыдущий.
Вы на самом деле не хотите использовать область сеанса? Выполните следующие действия при входе в систему:
request.getSession().setAttribute("user", user);
А затем следующее в фильтре аутентификации:
if (((HttpServletRequest).getSession().getAttribute("user") != null) {
chain.doFilter(request, response); // Continue.
} else {
((HttpServletResponse) response).sendRedirect("login"); // Redirect to login.
}
Смотри также: