在配置jwtfilter后返回的数据会变成无数据

遇见情况如下:
在添加jwtfilter之前,前端能正常接收到数据,响应体如下:
请求头:


响应:

在添加jwtfilter之后就出现没有响应数据的情况了:
请求头:

响应:

JwtFilter代码如下:


@Slf4j
//@Component
public class JwtFilter extends OncePerRequestFilter {
    @Autowired
    RedisCache redisCache;

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
        String originalHeader=request.getHeader("Origin");
        if(ObjectUtils.isNotEmpty(originalHeader)){
            response.addHeader("Access-Control-Allow-Origin",originalHeader);
            response.addHeader("Access-Control-Allow-Credentials","true");
//            response.addHeader("Access-Control-Allow-Methods","POST,GET,OPTIONS,DELETE,PUT");
            response.addHeader("Access-Control-Allow-Methods","POST,GET,DELETE,PUT");
            response.addHeader("Access-Control-Allow-Headers",request.getHeader("Access-Control-Request-Headers"));
        }
       String token = request.getHeader("Token");
        if (Objects.isNull(token) || token.trim().isEmpty()) {
            log.info("无token进入");
            filterChain.doFilter(request, response);
            return;
        }
        CacheObject cacheObject = (CacheObject) redisCache.getCacheObject("login:" + token);
        if (Objects.isNull(cacheObject)) {
                throw new GlobalException("无效jwt");
            }
//        CacheObject cacheObject1 = (CacheObject) cacheObject;
        this.setSecurityContext(cacheObject);
            log.info("有token进入");
            filterChain.doFilter(request, response);

    }

    private void setSecurityContext(CacheObject info) {
        SecurityContext emptyContext = SecurityContextHolder.createEmptyContext();
        emptyContext.setAuthentication(new UsernamePasswordAuthenticationToken(info.getId(),info,info.getRoles().stream().map(SimpleGrantedAuthority::new).collect(Collectors.toList())));
        SecurityContextHolder.setContext(emptyContext);
    }
}

但是在debug期间发现数据从数据库里面读取出来了,就是返回前端没数据:


并且直接访问和swagger里面有数据:
页面直接访问:

swagger访问:

  1. 看浏览器控制台,是不是有什么错误信息提示。
  2. 看后端控制台,开启DEBUG日志,看看进入Filter后的执行、响应流程以及是否有异常。

都没有报错信息,前端控制台没有信息,后端已经执行到接口返回数据的哪一步了,我debug的就是返回数据的哪一步

找到前端报错异常了: