JSessionId изменяется после входа в систему, и Angular 5 отправляет новый JSessionID с запросом и отбрасывает старый jsessionid - PullRequest
0 голосов
/ 04 ноября 2018

Я новичок в Angular 5 и Spring MVC и пытаюсь создать функцию входа в систему для моего приложения.

Мы не используем Spring Security, поскольку мы используем только базовое управление сеансами, предоставляемое модулем Spring MVC.

Я сохраняю JsessionId (скажем, LoginSessionId) во внешнем интерфейсе, сгенерированном LoginController при попытке аутентификации моего пользователя после отправки первого запроса на сервер:

Basic Session Creation in spring MVC

Я отправляю один и тот же LoginSessionId с каждым запросом в заголовке «Авторизация» с помощью HttpInterceptor:

HttpInterceptor

Но после входа в систему Angular 5 отправляет новый JsessionId в Cookie и удаляет ранее возвращенное JsessionId из cookie в ответ на первый запрос.

В моем бэкэнде (Spring MVC) новый Sessionid генерируется из второго запроса и ранее сгенерированный SessionId (LoginSessionId) отбрасывается.

Screenshot of multiple HttpSessions

Я хочу сохранить и использовать LoginSessionId в моих внутренних операциях.

Пожалуйста, подскажите мне, как это сделать? Я использую Apache Tomcat 8.0.43 и Spring MVC версии 5.0.4. Я уже включил заголовки CORS. Пожалуйста, дайте мне знать, если потребуется дополнительная информация.

1 Ответ

0 голосов
/ 08 декабря 2018

Я наконец нашел проблему. Я не добавлял заголовок withCredentials в первом запросе. Таким образом, мой внутренний сервер идентифицировал JsessionId только со второго запроса.

...