使用:Mojarra 2.15、jsf 2.0、Jboss 7.1
嗨,我试图在 doFilter 方法中实现会话过期,但是:
- 如果当前页面是index.html 并且会话已过期,则让用户输入 username/pwd 并单击确定按钮并重定向到另一个 page.xhtml
问题是当用户键入用户名/密码和确定按钮时,我得到会话过期页面而不是转到正确的页面。
if (httpServletRequest.getRequestedSessionId() != null && !httpServletRequest.isRequestedSessionIdValid()) {
session = httpServletRequest.getSession(true);
session.setAttribute("logedin", "0"); // public user
{
if(httpServletRequest.getRequestURL().toString().contains("index.xhtml"))
{
httpServletResponse.sendRedirect(loginPage);
}else
{
httpServletResponse.sendRedirect(timeoutPage);
}
} else {
request.setCharacterEncoding("UTF-8");
chain.doFilter(httpServletRequest, httpServletResponse);
}