Как удалить существующие сеансы по определенному основному имени

Я использую Spring Session 1.3.0 с бэкэндом Redis в своем проекте.

У меня есть вариант использования, когда суперадминистратор может обновить роли существующего пользователя, который, возможно, уже вошел в систему. Я хочу удалить существующие записи сеанса для этих пользователей после изменения их ролей.

Есть ли API Spring Session для его архивации?


person Kane    schedule 07.02.2017    source источник


Ответы (1)


Также разработайте другой способ очистки сессий конкретного пользователя,

@Autowired
FindByIndexNameSessionRepository sessionRepository;

sessionRepository.findByIndexNameAndIndexValue(FindByIndexNameSessionRepository.PRINCIPAL_NAME_INDEX_NAME,
                username).keySet().forEach(session -> sessionRepository.delete((String) session));
person Kane    schedule 07.02.2017
comment
Преждевременное удаление сеансов имеет некоторые побочные эффекты, если вы разрешаете несколько сеансов одного пользователя. Посмотрите на этот вопрос. stackoverflow.com/questions/22370819/ - person mirmdasif; 08.02.2017
comment
@mirmdasif это интересная находка. Мне интересно, почему безопасность spring/spring по-прежнему дает разрешение на запрос с недопустимым идентификатором сеанса (истек срок действия или удален). - person Kane; 08.02.2017