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

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

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

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

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

Спасибо!

4b9b3361

Ответ 1

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

RequestContextHolder.currentRequestAttributes().getSessionId();

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