Как передать некоторые из переменных сеанса на страницу выхода в Spring? - PullRequest
0 голосов
/ 12 апреля 2019

Мне нужно пройти опрос клиентов после того, как пользователь вышел из системы. Как передать некоторые переменные сеанса (информацию о пользователе) на страницу выхода из системы, чтобы они могли быть обработаны Thymeleaf? Во время выхода из системы сеанс становится недействительным, а все переменные сеанса удаляются.

UPDATE

Для начала - пара идей, которые не идеальны:

  • передать переменные в качестве параметров URL на страницу выхода, чтобы Thymeleaf мог отобразить все, что нужно для опроса

  • создать страницу «перед выходом из системы», которая отображается с переменными сеанса и выполняет немедленный AJAX-запрос на выход из системы.

  • передать в качестве URL-параметра переменную, которая является ссылкой на базу данных. Ссылка позволила бы Spring извлечь все сохраненные параметры в базе данных и передать его как модель в представление для дальнейшей визуализации. Придется зашифровать параметр и предоставить временную метку для аннулирования неиспользуемых.

Теперь - есть ли другие (лучшие) идеи?

Спасибо

ОБНОВЛЕНИЕ 2 - РЕШЕНИЕ :

  1. В WebSecurityConfigurerAdapter я изменил выход из системы, чтобы он не делал недействительным сеанс.
  2. Я расширил LogoutController и переопределил onLogoutSuccess (...). Таким образом, он извлекает некоторые из переменных сеанса, временно сохраняет их как локальные переменные, делает сеанс недействительным и помещает его в новый сеанс в качестве атрибутов сеанса. Все остальные переменные исчезли.
  3. В MVC-контроллере - я извлекаю атрибуты сеанса из HttpServletRequest и помещаю их в модель MVC; после чего я удаляю атрибуты сеанса. : D. Это работает.
...