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 に答える