HttpSession.getAttribute ("userId") возвращает null в Spring Boot после частого запроса API от внешнего интерфейса Angular

Я работаю над приложением, в котором Frontend реализован в Angular 5, а серверная часть находится в Spring Boot, я использую токены JWT для аутентификации. Проблема, которую я не могу понять, заключается в том, что когда пользователь входит в систему, я устанавливаю userId в HttpSession на задней панели, чтобы использовать userId в более позднем запросе того же пользователя.

session.setAttribute("userId", userData.getUsername());

Если тот же пользователь делает запросы к внутренним RestControllers с некоторым интервалом, например полсекунды, httpSession возвращается правильно, если я делаю очень быстрые запросы, httpSession начинает возвращать NULL. Я делаю такие запросы от Angular из различных сервисов.

getMyAccountList(){
    return this.http.get('/api/account/getMyAccountList');
  }

Если cookie еще не вернулся для идентификации сеанса, значит сеанса еще нет.

M. Deinum 02.08.2018 10:21
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
924
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Итак, я понял, что это связано с поведением Spring Security Session Fixation, которое активировано по умолчанию. настройка HttpSecurity http в WebSecuirtyConfigurerAdapter может решить проблему. просто нужно добавить эту конфигурацию.

http.sessionManagement().sessionFixation().none();

также обратитесь к этому сообщению: Apache Tomcat 7 Изменение JSESSIONID при каждом запросе

Другие вопросы по теме