自定义拦截器,拦截到了某个请求就返回给前端一个JSON串

84 阅读1分钟

这里通过token进行判断,如果token没有过期,就放行,如果token过期了,那就返回给前端一个失败状态码

/*
     * preHandle:在控制器(controller)前执行,返回值表示是否中断后续执行
     * 当返回值为true时表示继续向下执行,为false时会中断后续所有操作
     * */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) {
        // 获取请求头中的令牌
        String token = request.getHeader("token");
        try {
            JWTUtils.verify(token);// 验证令牌,成功直接放行,失败不放行,并返回给前端一个JSON串
            return true;
        } catch (Exception e) {
            System.out.println(e.getMessage());

            response.setCharacterEncoding("UTF-8");
            response.setContentType("application/json;charset=UTF-8");
            PrintWriter out = null;
            try {
                out = response.getWriter();
                out.write(JSONUtils.getJSONString(-1,"The Token is wrong"));
            } catch (IOException ioException) {
                ioException.printStackTrace();
            }
        }
        return false;
    }