如何用领域清除凭证?

时间:2012-10-03 11:41:53

标签: web-applications servlets web alfresco 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在服务器中清除这样的凭据? 非常感谢任何帮助!!!

价: What is the exact uses of REALM term in security?

2 个答案:

答案 0 :(得分:1)

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

来自spec

   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凭据上设置客户端超时。

答案 1 :(得分:1)

你可能想看一下这个问题:How to force Jetty to ask for credentials with BASIC authentication after invalidating the session?

基本身份验证对我来说似乎毫无用处。

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