解决 Signed Claims JWSs are not supported. 异常
在使用 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
的异同
- 相同
parseClaimsJwt
和parseClaimsJws
两个方法的作用是一样的,都是解析 JWT 载荷并返回一个Claims
对象。
- 不同
parseClaimsJwt
方法适用于未签名的 JWT。parseClaimsJws
方法适用于带有 JWS 签名的 JWT。
- 应用场景:据所使用的 JWT 类型选择正确的方法来解析它
- 如果您使用的是带有 JWS 签名的 JWT,则必须使用
parseClaimsJws
方法才能正确解析 JWT 并验证签名。 - 如果使用的是未签名的 JWT,则可以使用
parseClaimsJwt
方法;
- 如果您使用的是带有 JWS 签名的 JWT,则必须使用
解决 Signed Claims JWSs are not supported. 异常相关推荐
- 解决io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported问题
文章目录 1. 复现问题 2. 分析问题 3. 解决问题 1. 复现问题 项目使用spring boot + shiro + jwt框架作为登录认证,启动spring boot获取登录token,如下 ...
- io.jsonwebtoken.UnsupportedJwtException: Signed Claims JWSs are not supported.
后台报错:Signed Claims JWSs are not supported. io.jsonwebtoken.UnsupportedJwtException: Signed Claims JW ...
- jwt解析token报错:Signed Claims JWSs are not supported.
jwt解析token报错:Signed Claims JWSs are not supported. Exception in thread "main" io.jsonwebto ...
- mysql主从skip1677_解决字符集不同引起的主从同步异常1677报错问题
之前的一篇文章中,我们遇到了主从同步的一个问题,错误代码:1236,详细请看 今天,突然发现测试环境的主从同步关系断开了,报错代码:1677 一.问题错误信息 Last_SQL_Errno: 1677 ...
- Apache Hadoop 答疑:解决 Apache Hadoop 启动时 DataNode 启动异常的问题
文章目录 前言 一.启动 HDFS 并显示当前所有 Java 进程 二.DataNode 启动异常场景描述 三.DataNode 启动异常解决方式 四.Web 界面检查 Hadoop 信息 总结 前言 ...
- 【手记】解决“未能创建 SSL/TLS 安全通道”异常
[手记]解决"未能创建 SSL/TLS 安全通道"异常 参考文章: (1)[手记]解决"未能创建 SSL/TLS 安全通道"异常 (2)https://www. ...
- 解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法
解决Kubelet Pod启动CreatePodSandbox或RunPodSandbox异常方法 参考文章: (1)解决Kubelet Pod启动CreatePodSandbox或RunPodSan ...
- 已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!!
已解决RuntimeError: CUDA error: device-side assert triggered异常的正确解决方法,亲测有效!!! 文章目录 报错问题 解决方法 福利 报错问题 粉丝 ...
- 解决Cross origin requests are only supported for protocol schemes问题
解决Cross origin requests are only supported for protocol schemes问题 问题描述 本前端小白在学习的时候尝试按照一个网上的blog的代码来跑 ...
最新文章
- [渝粤教育] 西南科技大学 理论力学 在线考试复习资料
- 最全蚂蚁金服高级Java面试题目(3面)
- 实现Fragment的切换和ViewPager自动循环设置切换时间
- bootstrap中container类和container-fluid类的区别
- rust笔记12 单元测试
- 锁失效_关于bigtable中chubby锁失效时的一点思考
- AJAX不能访问MVC后台程序的问题
- 【转】Popclip的JSON格式化扩展
- 用JS代码输出101-200之间的素数
- 【按键精灵】N秒内找图函数封装
- cad直线和圆弧倒角不相切_数控加工中心如何使用任意角度倒角C和倒圆角R功能的编程...
- Ubuntu 编译最新LLVM套件:LLVM 16.0
- 人们熟知的一句名言是:“天才是1%的灵感加99%的汗水。”可如果没有那1%的灵感,世界上所有的汗水也就仅仅是一桶汗水而已。...
- java poi生成word
- 2021-06-08实验室如何正确选择和确认检测方法?
- Jetson Agx Xavier USB驱动裁剪+can时钟修改+内核源码编译流程(jetpack4.6.1)
- 合服 两个服务器都有什么作用,阴阳师合服是什么意思?合服合区问题汇总详解[多图]...
- Differentially Private Grids for Geospatial Data
- 多数据源/动态数据源的解决方案
- 物联网实训装置-物联网实训平台