我知道这个问题似乎已被许多其他线程回答,但我找不到使用带有 Glassfish 3.0.1 的 JSF 2.0 来注销用户的解决方案。 我尝试使用 j_security_check 作为操作使用 BASIC 身份验证和 FORM 身份验证。 但是对于注销方法,我找不到任何有效的方法。
我尝试使用带有 session.invalidate() 的 servlet,我使用托管 bean tring 使 session 无效,但没有任何反应。我也试过 j_security_logout 但没有成功。
有人知道我可以做什么来注销用户吗?
最佳答案
调用 session.invalidate()
应该有效。
您的问题可能是您使用浏览器后退按钮查看受限页面以测试注销是否真的成功,但该页面实际上是从浏览器缓存提供的,而不是直接从网络服务器提供的一个真正的 HTTP 连接。
在这种情况下,您需要指示网络浏览器不缓存受限制的页面。这样浏览器将始终直接从网络服务器请求页面。您可以在 Filter 的帮助下完成此操作.您可以在这个问题中找到示例:Prevent user from seeing previously visited secured page after logout
关于JSF 身份验证注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6470880/