2011-01-27 130 views
2

我正在开发一个web应用程序并使用框架jsf,hibernate和spring。会话在jsf中注销问题

应用程序中有不同类型的用户。在用户looged类型的基础上,我在不同的用户类型中启用菜单中的链接。

一旦用户登录,菜单栏中的注销链接将提供给用户。 我写了我的logout.jsp页面。

<% session.invalidate(); response.sendRedirect(response.encodeRedirectURL(“../ login/login.jsf”)); %>

即使注销用户能够查看应显示给特定类型用户的页面。

请帮忙。

回答

4

页面显然是从浏览器缓存中请求的。

通过添加其上的url-pattern映射覆盖动态网页等*.jsf并执行在doFilter()方法以下一个javax.servlet.Filter禁用它。

HttpServletResponse httpResponse = (HttpServletResponse) response; 
httpResponse.setHeader("Cache-Control", "no-cache, no-store, must-revalidate"); // HTTP 1.1. 
httpResponse.setHeader("Pragma", "no-cache"); // HTTP 1.0. 
httpResponse.setDateHeader("Expires", 0); // Proxies. 
chain.doFilter(request, response); 
0

电话后

session.invalidate(); 

添加

request.logout();. 

方法注销建立null作为返回值时getUserPrincipal,getRemoteUser和getAuthType是呼吁请求。