SpringBoot中@WebFilter导致@ControllerAdvice失效原因之一(个人笔记非教程)

 @Override
    protected void doFilter(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws IOException, ServletException,ShopException {
        response.setHeader("Content-Type", "application/json;charset=UTF-8");
        HttpSession session = request.getSession();
        User user = (User) session.getAttribute(Const.CURRENT_USER);
        
        // 不要再这里写这段注释代码
        //  PrintWriter writer = response.getWriter();
        //  ObjectMapper objectMapper = new ObjectMapper();


        if (user == null) {
            PrintWriter writer = response.getWriter();
            ObjectMapper objectMapper = new ObjectMapper();
            String json = objectMapper.writeValueAsString(ApiRestResponse.error(StatusExceptionEnum.NEED_LOGIN));
            writer.write(json);
            writer.flush();
            writer.close();
            return;
        }

        if (user.getRole() != 2) {
            PrintWriter writer = response.getWriter();
            ObjectMapper objectMapper = new ObjectMapper();
            String json = objectMapper.writeValueAsString(ApiRestResponse.error(StatusExceptionEnum.NOT_ADMIN));
            writer.write(json);
            writer.flush();
            writer.close();
            return;
        }


        super.doFilter(request, response, chain);
    }


版权声明:本文为qq_44408123原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。