From 2327af84ca174df8c0074e6d5d907ec7c0f67649 Mon Sep 17 00:00:00 2001 From: Looly Date: Sat, 27 Aug 2022 00:34:33 +0800 Subject: [PATCH] =?UTF-8?q?JWTUtil=E7=9A=84parseToken=E5=A2=9E=E5=8A=A0?= =?UTF-8?q?=E7=A9=BA=E5=80=BC=E5=BC=82=E5=B8=B8=E6=8A=9B=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 3 ++- hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java | 1 + hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java | 6 ++++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f7920696..137c7af05 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,7 +3,7 @@ ------------------------------------------------------------------------------------------------------------- -# 5.8.6.M1 (2022-08-26) +# 5.8.6.M1 (2022-08-27) ### 🐣新特性 * 【core 】 CollUtil新增addIfAbsent方法(pr#750@Gitee) @@ -16,6 +16,7 @@ * 【jwt 】 JWT补充部分算法(pr#2546@Github) * 【core 】 NumberUtil.roundStr() 修改为使用toPlainString(pr#775@Gitee) * 【extra 】 QrCodeUtil新增SVG格式、Ascii Art字符画格式(pr#763@Gitee) +* 【jwt 】 JWTUtil的parseToken增加空值异常抛出(issue#I5OCQB@Gitee) * ### 🐞Bug修复 * 【http 】 修复https下可能的Patch、Get请求失效问题(issue#I3Z3DH@Gitee) diff --git a/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java b/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java index 7e2708fa4..a8b4e15fd 100755 --- a/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java +++ b/hutool-jwt/src/main/java/cn/hutool/jwt/JWT.java @@ -92,6 +92,7 @@ public class JWT implements RegisteredPayload { * @return this */ public JWT parse(String token) { + Assert.notBlank(token, "Token String must be not blank!"); final List tokens = splitToken(token); this.tokens = tokens; this.header.parse(tokens.get(0), this.charset); diff --git a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java index 9ff5efc07..6a46d0d1b 100755 --- a/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java +++ b/hutool-jwt/src/test/java/cn/hutool/jwt/JWTUtilTest.java @@ -43,6 +43,12 @@ public class JWTUtilTest { Assert.assertEquals(true, jwt.getPayload("admin")); } + @Test(expected = IllegalArgumentException.class) + public void parseNullTest(){ + // https://gitee.com/dromara/hutool/issues/I5OCQB + JWTUtil.parseToken(null); + } + @Test public void verifyTest(){ String token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9." +