Ага, я уже ответил на это в списке рассылки.
То, что я написал:
Возможное решение (двойное):
Для входа в систему: Пользовательский класс UserDetails, которыйвыдает подходящее исключение, если вне временного интервала (не уверен, что это наиболее семантически правильное место для этого, но это легко).
Для людей, уже вошедших в систему: Кварцевое задание, которое выполняется на границах (например, 2 часа, еслито есть, когда слот заканчивается), который проходит через активные сеансы и делает их недействительными.Вы можете хранить список активных сессий различными способами, один из которых (на самом деле, полтора, не уверен, что вы можете использовать плагин Берта программным способом) описан здесь:
В граалях, какполучить ссылку на все текущие сеансы?
Теперь я вижу, что AccessDecisionVoter - лучшее решение, чем пользовательские детали, но ответ для тех, кто уже вошел в систему, остается тем же.