我使用@RolesAllowed({“Customer”})保护了Web服务。我已经使用Jersey客户端API成功测试了代码和安全配置。现在,我正尝试使用AJAX从JavaScript访问相同的服务。我在XMLHttpRequest的公开方法中设置了凭据:Ajax和Jersey Web服务的基本身份验证
xhr.open("GET", url, true, "bob", "paasss");
这根本不起作用。让我解释一下:
XHR首先发送没有授权标头的请求。只有当它遇到401响应状态和它重试请求的“WWW-Authenticate”标头,并且这次发送授权标头。当使用@RolesAllowed保护服务时,Jersey发送403状态。因此,授权标头永远不会被发送。
只有这样我能得到这个工作组的授权头自己:
xhr.setRequestHeader("Authorization", "Basic Ym9iOnBhc3N3MHJk");
这是做事的可以接受的方式?我能以某种方式让泽西返回401而不是403以及“WWW-Authenticate”标题吗?
谢谢!