Подтвердить что ты не робот

Как вы отключаете всех зарегистрированных пользователей в spring -security?

Я хочу, чтобы вы могли автоматически выводить всех зарегистрированных пользователей. Как принудительно вывести всех пользователей на какое-либо событие?

4b9b3361

Ответ 1

Сначала определите HttpSessionEventPublisher в web.xml

<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>

Затем определите <session-management> в файле spring security.xml.

Теперь используйте SessionRegistry в своем методе контроллера, чтобы аннулировать все сеансы. Ниже код извлекает все активные сеансы.

List<SessionInformation> activeSessions = new ArrayList<SessionInformation>();
    for (Object principal : sessionRegistry.getAllPrincipals()) {
        for (SessionInformation session : sessionRegistry.getAllSessions(principal, false)) {
            activeSessions.add(session);
        }
    }

В каждом активном сеансе вы можете вызвать метод expireNow() для его истечения или аннулирования.

Ответ 2

Ketan дает вам ответ, который вы ищете, если вы меняете второй для блока и используете session.expireNow(); вместо activeSessions.add(session);, вы закончите с истечением всех активных сеансов.