@RolesAllowed({"Customer"})を使用してWebサービスを保護しました。私は、JerseyクライアントAPIを使用してコードとセキュリティの設定をテストしました。今、AJAXを使用してJavaScriptから同じサービスにアクセスしようとしています。 XMLHttpRequestの公開メソッドで資格情報を設定します。AjaxおよびJersey Webサービスの基本認証
xhr.open("GET", url, true, "bob", "paasss");
これは単に動作しません。私に説明させてください:
XHRはまずAuthorizationヘッダーなしでリクエストを送信します。 401応答ステータスとが発生した場合にのみ、要求を再試行する "WWW-Authenticate"ヘッダーが送信され、今回はAuthorizationヘッダーが送信されます。 @RolesAllowedを使用してサービスが保護されると、Jerseyは403ステータスを送信します。したがって、Authorizationヘッダーは送信されません。私は仕事にこれを取得することができ
唯一の方法は、認証は自分自身をヘッダに設定されています
xhr.setRequestHeader("Authorization", "Basic Ym9iOnBhc3N3MHJk");
が、これは物事の許容可能な方法は何ですか?どういうわけか、ジャージーは403の代わりに401と "WWW-Authenticate"ヘッダーを返すことができますか?
ありがとうございます!