Получение идентификатора сеанса с помощью Spring Security

В целях ведения журнала я хотел бы создать регистратор, который автоматически добавляет идентификатор текущего сеанса в записываемые строки.
Для зарегистрированных пользователей это не проблема:

((WebAuthenticationDetails) SecurityContextHolder.getContext().getAuthentication().getDetails())
    .getSessionId()

Проблема заключается в том, что до входа пользователя в систему getAuthentication () возвращает null . Есть ли другой способ получить идентификатор сеанса, не имея ссылки на текущий ответ или что-то в этом роде?

23
задан Karl Richter 23 March 2019 в 19:29
поделиться

1 ответ

Вы можете использовать

RequestContextHolder.currentRequestAttributes().getSessionId();

. Это зависит от Spring RequestContextHolder , поэтому его следует использовать с Spring MVC DispatcherServlet или у вас должен быть ] RequestContextListener объявлен. Также будет создан сеанс, если он не существует.

52
ответ дан 29 November 2019 в 01:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: