doFilter()不适用于页面访问限制

时间:2013-07-15 09:09:13

标签: java jsf login

我使用BalusC代码来实现过滤器类;

@WebFilter("/Manager/faces/*")
public class AuthorizationFilter implements Filter {

@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws ServletException, IOException {    
    HttpServletRequest req = (HttpServletRequest) request;
    UserSession auth = (UserSession) req.getSession().getAttribute("UserSession");

    if (auth != null && auth.isLoggedIn()) {
        chain.doFilter(request, response);
    } else {
        HttpServletResponse res = (HttpServletResponse) response;
        res.sendRedirect(req.getContextPath() + "/index.xhtml");
    }
}

我有一个带有login(),logout(),isLoggedIn()方法的UserSession类,以及在isLoggedIn()中检查它是否为null的用户字段。

首先:我的代码是否正确?:

UserSession auth = (UserSession) req.getSession().getAttribute("UserSession");

我的索引页是:

/Manager/faces/index.xhtml

当我登录时,我可以访问我的所有页面,所以它无效。

甚至dofilter方法中的system.out.println也不会显示。我必须在某个地方调用doFilter()吗?

0 个答案:

没有答案