クライアント側のAngularJSとサーバー側のAPI(Tomcat + Jersey for WS)用のJavaに基づくアプリケーションに取り組んでいます。
API の一部のパスが制限されています。ユーザーがセッションを持っていない場合、返される応答ステータスは 401 です。クライアント側では、401 http ステータスが傍受され、ユーザーがログイン ページにリダイレクトされます。
ユーザーが認証されたら、サーバー側でセッションを作成します
httpRequest.getSession(真);クライアントに送信される応答には、ヘッダーに Set-cookie 命令が含まれています。
Set-Cookie:JSESSIONID=XXXXXXXXXXXXXXXXXXXXX; ドメイン=localhost; パス=/api/; HttpOnly
問題は、Cookie がクライアント側に配置されないことです。ローカルホスト ドメインの Cookie を検査すると空なので、次のリクエストのヘッダーにこの Cookie がなく、クライアント側はまだ API の制限されたパスにアクセスできませんでした。
クライアントとサーバーは同じドメインにありますが、同じパスと同じポート番号を持っていません:
クライアント :http://localhost:8000/app/index.html
サーバー:http://localhost:8080/api/restricted/
追加情報: CORS は両側で有効になっています:
「アクセス制御許可メソッド」、「GET、POST、OPTIONS」 「アクセス制御許可オリジン」、「*」 "Access-Control-Allow-Credentials", true
Set-cookie を適切に機能させるためのアイデアはありますか? それは AngularJS 関連の問題ですか?