Есть ли способ весной уничтожить сеанс http, если придет еще одна попытка входа в систему вошедшего в систему пользователя? - PullRequest
1 голос
/ 09 апреля 2020

Для нашего приложения с пружинной загрузкой (2.1.4) для нас важно, чтобы пользователь мог войти в систему только один раз.

Это было относительно легко настроить и работать отлично подходит для запросов REST.

http
  .sessionManagement()
  .maximumSessions(1)
  .maxSessionsPreventsLogin(false)
  .sessionRegistry(sessionRegistry());

Большая часть связи проходит через веб-сокеты, и получение здесь начинает нашу проблему. Вид нашего браузера меняется, когда соединение с веб-сокетом отключено. На стороне сервера рукопожатие websocket отключается, если сеанс http недействителен.

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

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

Большое спасибо за вашу помощь!

1 Ответ

0 голосов
/ 09 апреля 2020

Относительно слепое предположение, но вы пытались изменить sessionFixation? Он должен создать совершенно новый сеанс без копирования старых атрибутов при попытке аутентификации.

  http.sessionManagement()
                .sessionFixation().newSession()

;

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...