You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot JWT认证遇JsonParseException,需传用户ID到Angular5

解决Spring Boot JWT认证时的JsonParseException问题

看起来你遇到的com.fasterxml.jackson.core.JsonParseException: Unrecognized token错误,核心是Jackson解析JSON数据时碰到了不符合格式的内容,再加上dispatcherServlet的报错,大概率是前端请求格式不对或者后端JWT过滤器的JSON处理逻辑有问题,咱们一步步来排查和解决:

一、先排查前端请求的格式问题

Angular5前端发送认证请求(比如登录接口)时,很容易因为格式不符导致后端解析失败:

  • 确认请求的Content-Type是不是application/json,如果前端用了表单格式(application/x-www-form-urlencoded),但后端用@RequestBody接收参数,就会直接触发JSON解析异常
  • 检查请求体的JSON语法是否正确,比如有没有遗漏逗号、引号不配对的情况,正确的登录请求体应该类似:
    {"username":"yourAccount","password":"yourPassword"}
    
  • 如果用Angular的HttpClient发送请求,确保是post(url, requestBody)的形式,不要把参数拼在URL里,也不要用表单提交的方式传递JSON数据

二、检查JWTAuthenticationFilter的JSON解析逻辑

你的JWTAuthenticationFilter里肯定有读取请求体、解析用户认证信息的代码,这里是高频出错点:

  • 避免重复读取请求流:Servlet的请求流只能读取一次,如果之前有其他过滤器提前读取了流,要改用ContentCachingRequestWrapper包装请求,保证后续能正常获取请求体
  • 检查手动解析的代码,比如下面这种写法要确保读取到的内容是合法JSON:
    String requestBody = IOUtils.toString(request.getInputStream(), StandardCharsets.UTF_8);
    LoginRequest loginRequest = objectMapper.readValue(requestBody, LoginRequest.class);
    
    可以在解析前加个日志打印requestBody,看看是不是真的是预期的JSON字符串

三、排查JWTAuthorizationFilter的Token解析问题

如果是在授权阶段触发的错误,大概率是前端传递的Token格式不对:

  • 确认前端在请求头里的Authorization字段是不是严格遵循Bearer <token>的格式,有没有多空格、少空格,或者直接传了Token没加Bearer 前缀
  • 后端解析Token时要做容错处理,比如:
    String authHeader = request.getHeader("Authorization");
    if (authHeader == null || !authHeader.startsWith("Bearer ")) {
        // 处理Token不存在或格式错误的情况,不要直接抛出异常
        chain.doFilter(request, response);
        return;
    }
    String token = authHeader.substring(7);
    
    要是没做前置判断,substring(7)会在Token格式错误时抛出异常,进而引发连锁的JSON解析报错

四、DispatcherServlet报错的关联处理

DispatcherServlet的报错一般是前面的JSON解析异常引发的连锁反应,只要解决了核心的JsonParseException,这个报错自然会消失。建议你查看完整的堆栈跟踪,找到最开始抛出异常的类和方法,能帮你精准定位问题位置。

额外调试建议

  • 打开Spring Boot的DEBUG日志,配置日志级别为DEBUG后,可以看到请求的完整头信息和请求体,能直观判断前端传的内容是否符合预期
  • 先用Postman测试后端接口:如果Postman请求正常,说明问题出在Angular的请求逻辑上;如果Postman也报错,那就是后端过滤器或接口的处理逻辑有问题

内容的提问来源于stack exchange,提问作者dEs12ZER

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:33:33