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