From 4f0e73ba97517ff9bbe1ce5e490a03214b3996cb Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期二, 30 十一月 2021 10:33:35 +0800
Subject: [PATCH] update 使用 hutool-jwt 替换老旧 jjwt 依赖

---
 ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java            |    3 +--
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java |   28 +++++++++++++---------------
 pom.xml                                                                        |    1 -
 ruoyi-common/pom.xml                                                           |    6 ------
 4 files changed, 14 insertions(+), 24 deletions(-)

diff --git a/pom.xml b/pom.xml
index 4dd5166..ad4980f 100644
--- a/pom.xml
+++ b/pom.xml
@@ -25,7 +25,6 @@
         <poi.version>4.1.2</poi.version>
         <easyexcel.version>2.2.11</easyexcel.version>
         <velocity.version>2.3</velocity.version>
-        <jwt.version>0.9.1</jwt.version>
         <mybatis-plus.version>3.4.3.4</mybatis-plus.version>
         <p6spy.version>3.9.1</p6spy.version>
         <hutool.version>5.7.16</hutool.version>
diff --git a/ruoyi-common/pom.xml b/ruoyi-common/pom.xml
index 4a0e1a8..68db4cc 100644
--- a/ruoyi-common/pom.xml
+++ b/ruoyi-common/pom.xml
@@ -70,12 +70,6 @@
             <artifactId>snakeyaml</artifactId>
         </dependency>
 
-        <!-- Token鐢熸垚涓庤В鏋�-->
-        <dependency>
-            <groupId>io.jsonwebtoken</groupId>
-            <artifactId>jjwt</artifactId>
-        </dependency>
-
         <!-- jdk11 缂哄け渚濊禆 jaxb-->
         <dependency>
             <groupId>com.sun.xml.bind</groupId>
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
index 9c91a1a..88a3c3b 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/Constants.java
@@ -1,6 +1,5 @@
 package com.ruoyi.common.constant;
 
-import io.jsonwebtoken.Claims;
 
 /**
  * 閫氱敤甯搁噺淇℃伅
@@ -106,7 +105,7 @@
     /**
      * 鐢ㄦ埛鍚嶇О
      */
-    public static final String JWT_USERNAME = Claims.SUBJECT;
+    public static final String JWT_USERNAME = "sub";
 
     /**
      * 鐢ㄦ埛澶村儚
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
index 15b9759..eaf8786 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/TokenServiceImpl.java
@@ -3,6 +3,10 @@
 import cn.hutool.core.util.IdUtil;
 import cn.hutool.http.useragent.UserAgent;
 import cn.hutool.http.useragent.UserAgentUtil;
+import cn.hutool.json.JSONObject;
+import cn.hutool.jwt.JWTUtil;
+import cn.hutool.jwt.signers.JWTSigner;
+import cn.hutool.jwt.signers.JWTSignerUtil;
 import com.ruoyi.common.constant.Constants;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.core.service.TokenService;
@@ -11,9 +15,6 @@
 import com.ruoyi.common.utils.ServletUtils;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.ip.AddressUtils;
-import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.Jwts;
-import io.jsonwebtoken.SignatureAlgorithm;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
@@ -50,9 +51,9 @@
         String token = getToken(request);
         if (StringUtils.isNotEmpty(token)) {
             try {
-                Claims claims = parseToken(token);
+                JSONObject claims = parseToken(token);
                 // 瑙f瀽瀵瑰簲鐨勬潈闄愪互鍙婄敤鎴蜂俊鎭�
-                String uuid = (String) claims.get(Constants.LOGIN_USER_KEY);
+                String uuid = claims.getStr(Constants.LOGIN_USER_KEY);
                 String userKey = getTokenKey(uuid);
                 LoginUser user = RedisUtils.getCacheObject(userKey);
                 return user;
@@ -153,9 +154,8 @@
      * @return 浠ょ墝
      */
     private String createToken(Map<String, Object> claims) {
-        String token = Jwts.builder()
-                .setClaims(claims)
-                .signWith(SignatureAlgorithm.HS512, tokenProperties.getSecret()).compact();
+        JWTSigner signer = JWTSignerUtil.hs512(tokenProperties.getSecret().getBytes());
+        String token = JWTUtil.createToken(claims, signer);
         return token;
     }
 
@@ -165,11 +165,9 @@
      * @param token 浠ょ墝
      * @return 鏁版嵁澹版槑
      */
-    private Claims parseToken(String token) {
-        return Jwts.parser()
-                .setSigningKey(tokenProperties.getSecret())
-                .parseClaimsJws(token)
-                .getBody();
+    private JSONObject parseToken(String token) {
+        JWTSigner signer = JWTSignerUtil.hs512(tokenProperties.getSecret().getBytes());
+        return JWTUtil.parseToken(token).setSigner(signer).getPayload().getClaimsJson();
     }
 
     /**
@@ -180,8 +178,8 @@
      */
     @Override
     public String getUsernameFromToken(String token) {
-        Claims claims = parseToken(token);
-        return claims.getSubject();
+        JSONObject claims = parseToken(token);
+        return claims.getStr("sub");
     }
 
     /**

--
Gitblit v1.9.3