0

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() を呼び出す必要がありますか?

4

0 に答える 0