Set-Cookie w nagłówku HTTP jest ignorowany przez AngularJS

Pracuję nad aplikacją opartą na AngularJS po stronie klienta i Java dla mojego API (Tomcat + Jersey dla WS) po stronie serwera.

Niektóre ścieżki mojego interfejsu API są ograniczone, jeśli użytkownik nie ma sesji, zwrócony zostanie stan odpowiedzi 401. Po stronie klienta przechwytywany jest status http 401 w celu przekierowania użytkownika na stronę logowania.

Po uwierzytelnieniu użytkownika tworzę sesję po stronie serwera

httpRequest.getSession(true);
a odpowiedź wysłana do klienta ma instrukcję Set-cookie w nagłówku:

Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; Domain=localhost; Path=/api/; HttpOnly

Problem polega na tym, że plik cookie nigdy nie jest umieszczany po stronie klienta. Kiedy sprawdzam plik cookie dla domeny localhost, jest pusty, więc następne żądania nie mają tego pliku cookie w nagłówku, a strona klienta nadal nie może uzyskać dostępu do ograniczonej ścieżki mojego interfejsu API.

Klient i serwer są w tej samej domenie, ale nie mają tej samej ścieżki i tego samego numeru portu:

Klient :http://localhost:8000/app/index.html

Serwer :http://localhost:8080/api/restricted/

Dodatkowe informacje: CORS jest włączony po obu stronach:

"Access-Control-Allow-Methods", "GET, POST, OPTIONS"
"Access-Control-Allow-Origin", "*"
"Access-Control-Allow-Credentials", true

Jakikolwiek pomysł na poprawne działanie cookie Set? Czy jest to problem związany z AngularJS?

questionAnswers(6)

yourAnswerToTheQuestion