我知道很多其他线程似乎都回答了这个问题,但我找不到使用Glassfish 3.0.1的JSF 2.0解决用户问题的解决方案。 我尝试使用基本身份验证和使用j_security_check作为操作的FORM身份验证。 但是对于注销方法,我找不到任何有效的方法。
我尝试使用带有session.invalidate()的servlet,我使用托管bean来使会话失效,但什么都没发生。我也试过j_security_logout但没有成功。
有人知道我可以为注销用户做些什么吗?
答案 0 :(得分:8)
调用session.invalidate()
应该有效。
您的问题可能是您使用浏览器后退按钮查看受限页面以测试注销是否真的成功,但该页面实际从浏览器缓存中提供而不是直接从Web服务器提供一个真正的HTTP连接。
在这种情况下,您需要指示Web浏览器不缓存受限制的页面。这样浏览器将始终直接从Web服务器请求页面。您可以借助Filter来完成此操作。您可以在此问题中找到一个示例:Prevent user from seeing previously visited secured page after logout