ユーザーがログインしているかどうかを確認するフィルターフィルター

個人ブログ
情報セキュリティを保護し、情報ページへの直接アクセスを防ぐために、ユーザーがログインしているかどうかを確認する必要があります。アイデアは、最初にログイン機能に含まれるリソースのパスを除外し、他のリソースにアクセスするときにユーザーがログインしているかどうかを判別し、セッションにユーザーが含まれているかどうかを判別することです。持っている場合は手放し、ない場合はランディングページにジャンプします。
ここに画像の説明を挿入

@WebFilter("/*")
public class LoginFilter implements Filter {

    public void doFilter(ServletRequest req, ServletResponse resp, FilterChain chain) throws ServletException, IOException {
        //强制转化
        HttpServletRequest request = (HttpServletRequest) req;
        //获取资源请求路径
        String uri = request.getRequestURI();
        //判断是否包含登陆相关资源路径,注意排除掉css/js/图片/验证码等资源
        if(uri.contains("/login.jsp") || uri.contains("/loginServlet") || uri.contains("/js/")
                || uri.contains("/css/") || uri.contains("/fonts/") || uri.contains("/checkCodeServlet")){
            //包含登陆资源路径则放行
            chain.doFilter(req, resp);
        }else {
            //不包含,需要判断用户是否已登陆
            //从session中获取user
            Object user = request.getSession().getAttribute("user");
            if (user != null){
                chain.doFilter(req, resp);
            }else {
                request.setAttribute("login_msg","您尚未登陆,请登录");
                request.getRequestDispatcher("/login.jsp").forward(request,resp);
            }
        }
    }

    public void init(FilterConfig config) throws ServletException {

    }

    public void destroy() {
    }

}
   public void destroy() {
    }

}
元の記事を28件公開 賞賛された0 訪問数722

おすすめ

転載: blog.csdn.net/William_GJIN/article/details/105017168
おすすめ