Я пишу этот вопрос, чтобы понять, как контролировать номер сеанса, который пользователь мог бы назвать Spring Security Весной я могу определить максимальное число сеанса, что все пользователи должны иметь т.е. корыта управления сеансами я определить, например, что все пользователи не должны иметь возможность иметь более 3 сессииКонтроль безопасности одновременной сессии Spring Security для каждой группы пользователей или для одного пользователя
.sessionManagement().maximumSessions(3)
это само по себе не достаточно, то есть мы должны дать сервлет контейнер способ уведомлять весеннюю безопасность для обновления сеанса или удаления сеанса и т. д., поэтому нам нужно настроить HttpSessionEventPublishet
@Bean
public ServletListenerRegistrationBean<HttpSessionEventPublisher> httpSessionEventPublisher() {
return new ServletListenerRegistrationBean<HttpSessionEventPublisher>(new HttpSessionEventPublisher());
}
Теперь вот вопрос как я настроить что-то вроде этого: административных пользователей должны иметь возможность иметь максимальное количество сессии, установленную на 8 сессии про пользователь с правами администратора, но обычные пользователи не должны иметь возможность иметь более один сеанс на пользователя.
Реализовать свою собственную стратегию, основанную на классе 'ConcurrentSessionControlAuthenticationStrategy'. Вам нужно будет переопределить метод getMaximumSessionsForThisUser и реализовать свою логику там. Затем подключите свое пользовательское imlpementation с помощью 'sessionmanagement'. –
Deinum спасибо за этот ответ, я возьму неделю, чтобы обработать эту информацию и сообщить, если это ответ, мне кажется правдоподобным. Снова благодарим за быструю обратную связь. – Tito