在使用 JWT 进行认证和授权时,有时候可能会遇到 "io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported." 异常。本文将介绍该异常的原因以及如何解决它。

原因

这个异常是由于使用了签名的 JWT(JWS),而 io.jsonwebtoken 库不支持这种方式导致的。当使用 parseClaimsJwt 方法解析带有签名的 JWT 时,它将忽略签名并且返回包含荷载(payload)的 Claims 对象。这会导致验证 JWT 的签名失败,并抛出异常。

解决方法

使用 parseClaimsJws 方法代替 parseClaimsJwt 方法,即可解决

private Claims getClaimsFormToken(String token) {Claims claims = null;try {claims = Jwts.parser().setSigningKey(secret)// 将 parseClaimsJwt 替换为 parseClaimsJws.parseClaimsJws(token) .getBody();}catch (Exception e){e.printStackTrace();}return claims;
}

parseClaimsJws 与 parseClaimsJwt 的异同

  • 相同

    • parseClaimsJwtparseClaimsJws 两个方法的作用是一样的,都是解析 JWT 载荷并返回一个 Claims 对象。
  • 不同
    • parseClaimsJwt 方法适用于未签名的 JWT。
    • parseClaimsJws 方法适用于带有 JWS 签名的 JWT。
  • 应用场景:据所使用的 JWT 类型选择正确的方法来解析它
    • 如果您使用的是带有 JWS 签名的 JWT,则必须使用 parseClaimsJws 方法才能正确解析 JWT 并验证签名。
    • 如果使用的是未签名的 JWT,则可以使用 parseClaimsJwt 方法;

解决 Signed Claims JWSs are not supported. 异常相关推荐

  1. 解决io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported问题

    文章目录 1. 复现问题 2. 分析问题 3. 解决问题 1. 复现问题 项目使用spring boot + shiro + jwt框架作为登录认证,启动spring boot获取登录token,如下 ...

  2. io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported.

    后台报错:Signed Claims JWSs are not supported. io.jsonwebtoken.UnsupportedJwtException: Signed Claims JW ...

  3. jwt解析token报错:Signed Claims JWSs are not supported.

    jwt解析token报错:Signed Claims JWSs are not supported. Exception in thread "main" io.jsonwebto ...

  4. mysql主从skip1677_解决字符集不同引起的主从同步异常1677报错问题

    之前的一篇文章中,我们遇到了主从同步的一个问题,错误代码:1236,详细请看 今天,突然发现测试环境的主从同步关系断开了,报错代码:1677 一.问题错误信息 Last_SQL_Errno: 1677 ...

  5. Apache Hadoop 答疑:解决 Apache Hadoop 启动时 DataNode 启动异常的问题

    文章目录 前言 一.启动 HDFS 并显示当前所有 Java 进程 二.DataNode 启动异常场景描述 三.DataNode 启动异常解决方式 四.Web 界面检查 Hadoop 信息 总结 前言 ...

  6. 【手记】解决“未能创建 SSL/TLS 安全通道”异常

    [手记]解决"未能创建 SSL/TLS 安全通道"异常 参考文章: (1)[手记]解决"未能创建 SSL/TLS 安全通道"异常 (2)https://www. ...

  7. 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法

    解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法 参考文章: (1)解决Kubelet Pod启动CreatePodSandbox或RunPodSan ...

  8. 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!

    已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!! 文章目录 报错问题 解决方法 福利 报错问题 粉丝 ...

  9. 解决Cross origin requests are only supported for protocol schemes问题

    解决Cross origin requests are only supported for protocol schemes问题 问题描述 本前端小白在学习的时候尝试按照一个网上的blog的代码来跑 ...

最新文章

  1. [渝粤教育] 西南科技大学 理论力学 在线考试复习资料
  2. 最全蚂蚁金服高级Java面试题目(3面)
  3. 实现Fragment的切换和ViewPager自动循环设置切换时间
  4. bootstrap中container类和container-fluid类的区别
  5. rust笔记12 单元测试
  6. 锁失效_关于bigtable中chubby锁失效时的一点思考
  7. AJAX不能访问MVC后台程序的问题
  8. 【转】Popclip的JSON格式化扩展
  9. 用JS代码输出101-200之间的素数
  10. 【按键精灵】N秒内找图函数封装
  11. cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
  12. Ubuntu 编译最新LLVM套件:LLVM 16.0
  13. 人们熟知的一句名言是:“天才是1%的灵感加99%的汗水。”可如果没有那1%的灵感,世界上所有的汗水也就仅仅是一桶汗水而已。...
  14. java poi生成word
  15. 2021-06-08实验室如何正确选择和确认检测方法?
  16. Jetson Agx Xavier USB驱动裁剪+can时钟修改+内核源码编译流程(jetpack4.6.1)
  17. 合服 两个服务器都有什么作用,阴阳师合服是什么意思?合服合区问题汇总详解[多图]...
  18. Differentially Private Grids for Geospatial Data
  19. 多数据源/动态数据源的解决方案
  20. 物联网实训装置-物联网实训平台

热门文章

  1. Mysql运维常用命令回顾整理
  2. SAP 启动物料帐后不可更改物料价格的处理方法
  3. qt 图片适应窗口_Qt图片自适应窗口控件大小
  4. Android LRUCache原理
  5. 3d卷积神经网络应用,神经网络仿真软件
  6. Matlab图像分割---使用dice相似系数方法进行图像分割精度验证
  7. 启航——我的第一篇博客
  8. LocalDate 和LocalDateTime
  9. Ashampoo WinOptimizer 2021
  10. doc与docx批量互转宏代码