У нас есть приложение безопасности Spring с довольно стандартной настройкой. В настоящее время мы разрешаем только 1 сеанс для каждого участника, отклоняя дополнительные входы в систему тем же участником, пока первый сеанс не выйдет из системы или не истечет (MaximumSessions = 1, excpeptionIfMaximumExceeded = true).
Я бы хотел изменить это так, чтобы при повторном входе субъекта в систему с активным в данный момент входом в другой сеанс первый сеанс аннулируется / заменяется. Это легко сделать, используя предоставленную стратегию параллельного управления сессиями весенней безопасности, но у меня возникают проблемы с выяснением того, как предупредить пользователя. Когда сеанс пользователя заменяется, он отменяется обработчиком выхода из системы. Следующий запрос получит перенаправление на страницу входа с кодом ошибки в строке запроса. Однако, если запрос, который получает это перенаправление, является изображением или другим непрограмматическим вызовом, я не могу обработать это.
Похоже, мне нужно перевести пользователя в промежуточное состояние, где у него есть сеанс, но срок его действия истек, и ему нужно войти в систему, если он не хотел заменять свой исходный сеанс. Однако я не вижу хорошего способа сделать это.
Есть ли где-нибудь пример такой установки?