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?