Случай прост: пользователь нажимает кнопку выхода из системы, переходит в LogoutFilter и:
HttpServletRequest hreq = (HttpServletRequest) request;
hreq.getSession(false).invalidate();
HttpServletResponse httpResponse = (HttpServletResponse) response;
httpResponse.reset();
httpResponse.setHeader("Cache-Control", "no-cache");
httpResponse.setHeader("Pragma", "no-cache");
httpResponse.setHeader("Cache-Control", "no-store");
httpResponse.setHeader("Cache-Control", "must-revalidate");
httpResponse.setDateHeader("Expires", 0);
chain.doFilter(request, response);
А на странице ссылка для входа показана. Проблема проста: сеанс воссоздан, но пользовательские субъекты разбиты на блоки, поэтому не отображается всплывающее окно входа в систему и приложение использует кэшированные принципалы, поскольку request.getUserPrincipals () возвращает не нулевой объект.
Вопрос прост: есть ли способ также удалить учетные записи пользователей, поэтому браузер просит снова войти в систему после выхода из системы?