在我们的应用程序中,我们验证用户名/密码。验证完成后,使用base64对凭证进行编码,然后需要在请求标头中设置凭据以进行后续的休息调用。
需要在请求标题中设置以下内容。
Authorization:Basic AQNLzR69OFTNJE8X
在java代码的响应设置中,
javax.ws.rs.core.Response.status(200).entity("").header("Authorization:","Basic AQNLzR69OFTNJE8X").build();
在javascript尝试设置如下,
sessionStorage.setItem('Authorization:', 'Basic AQNLzR69OFTNJE8X');
但是在随后的同一会话中的休息服务调用中可以看到未使用授权设置标头请求。请求提供有关在javascript中设置授权的一些指示,以便在整个会话中保留它。
答案 0 :(得分:1)
我认为您误解了身份验证的工作原理(或应该如何工作)。
您应该在身份验证期间仅发送一次Authorization
标头。如果身份验证成功,服务器会向您发回会话cookie,并且会话将标记为已通过身份验证(服务器端)。
您永远不会发回标题的内容,也不必每次发送请求。
1)不会自动添加Authorization
标头。但cookie会自动发送。
2)您不应该发送凭证并将其退回:出于安全考虑,您希望尽可能少地运输凭证。
3)您不希望将凭证存储在sessionStorage中,我不知道这是否是一个安全的密码位置(我怀疑它),但在这里,密码只能用B64编码,并且它是可逆的。所以它和cleartext一样(这对密码不好)。
希望这有帮助!