我知道很多其他线程似乎都能回答这个问题,但我找不到使用JSF 2.0和Glassfish 3.0.1注销用户的解决方案。我尝试了使用BASIC身份验证和使用j_security_check作为操作的FORM身份验证。但对于注销方法,我找不到任何一个有效的方法。
我尝试使用一个带有session.invalidate()的servlet,我使用了一个托管bean字符串来使会话无效,但什么也没发生。我还尝试了j_security_loot,但没有成功。
有人知道我能为注销用户做些什么吗?
调用session.invalidate()
应该可以工作。
您的问题可能是,您使用浏览器后退按钮查看了一个受限页面,以测试注销是否真的成功,但该页面实际上是从浏览器缓存提供的,而不是通过真正的HTTP连接直接从Web服务器提供的。
在这种情况下,您需要指示Web浏览器不要缓存受限制的页面。这样,浏览器将始终直接从Web服务器请求页面。您可以在筛选器的帮助下执行此操作。您可以在这个问题中找到一个例子:防止用户在退出后看到以前访问过的安全页面