JSF身份验证注销

mar*_*v00 2 authentication jsf glassfish logout jaas

我知道很多其他线程似乎都回答了这个问题,但我找不到使用GlassF 3.0.1的JSF 2.0解决用户问题的解决方案.我尝试使用基本身份验证和使用j_security_check作为操作的FORM身份验证.但是对于注销方法,我找不到任何有效的方法.

我尝试使用带有session.invalidate()的servlet,我使用了托管bean来使会话失效,但什么也没发生.我也试过j_security_logout但没有成功.

有人知道我可以为注销用户做些什么吗?

Bal*_*usC 8

呼叫session.invalidate()应该工作.

您的问题可能是您使用浏览器后退按钮查看受限页面以测试注销是否真的成功,但该页面实际上是通过浏览器缓存提供的,而不是直接通过真实HTTP连接从Web服务器提供.

在这种情况下,您需要指示Web浏览器缓存受限制的页面.这样浏览器将始终直接从Web服务器请求页面.您可以借助过滤器来完成此操作.您可以在此问题中找到一个示例:阻止用户在注销后查看以前访问过的受保护页面