Файл cookie SESSION создается с помощью DefaultCookieSerializer
Spring Session, который вызывается каждый раз при создании нового сеанса, и не обязательно после успешной аутентификации.
SessionRepositoryFilter
Spring Session * обертывает запрос HttpServletRequest в такойТаким образом, всякий раз, когда вы получаете HttpSession из запроса в любой точке вашего приложения, вы фактически получаете объект Spring Session.Однако этот файл cookie записывается в ответ после вызова вашего обработчика, как вы можете видеть в SessionRepositoryFilter
:
try {
filterChain.doFilter(wrappedRequest, wrappedResponse);
}
finally {
wrappedRequest.commitSession(); //the SESSION cookie is created if necessary
}
Так что, если сеанс был только что создан для этого запроса ...
- Файл cookie не будет доступен в запросе HttpServletRequest, поскольку файл cookie еще не отправлен (и поэтому браузер не смог его отправить)
- Файл cookie не будетHttpServletResponse как заголовок «Set-Cookie», так как он будет записан после того, как ваше приложение обработало запрос.
Однако вы можете получить значение cookie:
String cookieValue = request.getSession().getId();
Примечание: Приведенный выше код заставит Spring Session создать Redis / Jdbc / etc, поддерживаемый сессией, который позже будет использован для создания файла cookie SESSION.