Set-Cookie no cabeçalho HTTP é ignorado com o AngularJS

Eu estou trabalhando em um aplicativo baseado em AngularJS no lado do cliente e Java para minha API (Tomcat + Jersey for WS) no lado do servidor.

Algum caminho da minha API é restrito, se o usuário não tiver uma sessão, o status de resposta retornado será 401. No lado do cliente, o status http 401 é interceptado para redirecionar o usuário para a página de login.

Depois que o usuário é autenticado, eu crio uma sessão no lado do servidor

httpRequest.getSession(true);
e a resposta enviada ao cliente tem a instrução Set-cookie no cabeçalho:

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

O problema é que o cookie nunca é colocado no lado do cliente. Quando eu inspeciono o cookie para o domínio localhost ele está vazio, então as próximas solicitações não têm esse cookie no cabeçalho e o lado do cliente ainda não pôde acessar o caminho restrito da minha API.

O cliente e o servidor estão no mesmo domínio, mas não possuem o mesmo caminho e o mesmo número de porta:

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

Servidor :http://localhost:8080/api/restricted/

Informações adicionais: o CORS está ativado em ambos os lados:

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

Qualquer ideia para fazer o Set-cookie funciona corretamente? É uma questão relacionada ao AngularJS?

questionAnswers(6)

yourAnswerToTheQuestion