0

我真的很想知道realm的用法。 http://en.wikipedia.org/wiki/Basic_access_authentication

现有浏览器会保留身份验证信息,直到关闭选项卡或浏览器或用户清除历史记录。 [1] HTTP 没有为服务器提供一种方法来指导客户端丢弃这些缓存的凭据。这意味着服务器无法在不关闭浏览器或使用 URL 中的会话的情况下“注销”用户的有效方法。

在我的编码中

res.setStatus(HttpServletResponse.SC_UNAUTHORIZED);
res.setHeader("WWW-Authenticate", "Basic realm=\"Alfresco\"");

因此该站点请求基于领域的身份验证。一旦它请求,用户名和密码就会保存在某个地方,直到浏览器缓存或浏览历史被删除,这些信息才会被保存。

我的问题是有没有办法使用 servlet 清除服务器中的此类凭据? 任何帮助是极大的赞赏!!!

参考: REALM 术语在安全性中的确切用途是什么?

4

2 回答 2

1

服务器永远不会对浏览器进行这种级别的控制。处理帐户详细信息泄漏的唯一安全方法是立即使帐户无效或锁定,并使与其相关的所有用户会话到期。Web 服务器能够完成所有这些操作。

规格

   The realm attribute (case-insensitive) is required for all
   authentication schemes which issue a challenge. The realm value
   (case-sensitive), in combination with the canonical root URL of the
   server being accessed, defines the protection space

这基本上意味着一旦您成功验证了一次,浏览器就可以安全地假设同一根 URL 下的所有资源都可以使用相同的凭据进行访问。在 HTTP Basic 凭据上设置客户端超时没有标准方法。

于 2012-10-03T12:39:43.597 回答
1

您可能想看看这个答案:How to force Jetty to ask for credentials with BASIC authentication after invalidating session?

基本身份验证对我来说似乎没用。

如果可以,您想切换到表单身份验证。

于 2012-10-04T08:39:51.953 回答