1

我有一个带有 URL /booking/Create.jsf 的预订页面。我有一个用于 URL 模式 /booking/* 的过滤器,因此要求用户在进入 Create.jsf 之前登录页面 /login/signin.jsf。但我有一个“以访客身份继续”按钮,以便未注册的用户无需登录即可在 Create.jsf 页面上创建预订。我怎样才能做到这一点。任何帮助将不胜感激。我的过滤器看起来像

public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
    HttpServletRequest req = (HttpServletRequest) request;
    UserLoginController loginController = (UserLoginController) req.getSession().getAttribute("userLoginController");

    if(loginController != null && loginController.isLoggedIn()){
        chain.doFilter(request, response);
    }
    else{
        HttpServletResponse httpServletResponse = (HttpServletResponse) response;
        httpServletResponse.sendRedirect(req.getContextPath() + "/login/signin.jsf");
    }
}
4

1 回答 1

0

该页面create.jsf最终被视为公共页面。因此,为了启用其他有关“预订”的页面的过滤器,只需创建一个名为“用户”的新子文件夹,您应该在其中放置其他“预订”页面,过滤器的新 url 模式将作为结果:/booking/user/*。这样,预订的其他内容仍然安全,并且/booking/create.jsf用户和客人可以轻松访问该页面,因为它没有被过滤器覆盖。

于 2013-10-19T17:53:14.887 回答