update 使用 hutool-jwt 替换老旧 jjwt 依赖

This commit is contained in:
疯狂的狮子li 2021-11-30 10:33:35 +08:00
parent 230d19a7aa
commit 4f0e73ba97
4 changed files with 14 additions and 24 deletions

View File

@ -25,7 +25,6 @@
<poi.version>4.1.2</poi.version> <poi.version>4.1.2</poi.version>
<easyexcel.version>2.2.11</easyexcel.version> <easyexcel.version>2.2.11</easyexcel.version>
<velocity.version>2.3</velocity.version> <velocity.version>2.3</velocity.version>
<jwt.version>0.9.1</jwt.version>
<mybatis-plus.version>3.4.3.4</mybatis-plus.version> <mybatis-plus.version>3.4.3.4</mybatis-plus.version>
<p6spy.version>3.9.1</p6spy.version> <p6spy.version>3.9.1</p6spy.version>
<hutool.version>5.7.16</hutool.version> <hutool.version>5.7.16</hutool.version>

View File

@ -70,12 +70,6 @@
<artifactId>snakeyaml</artifactId> <artifactId>snakeyaml</artifactId>
</dependency> </dependency>
<!-- Token生成与解析-->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
</dependency>
<!-- jdk11 缺失依赖 jaxb--> <!-- jdk11 缺失依赖 jaxb-->
<dependency> <dependency>
<groupId>com.sun.xml.bind</groupId> <groupId>com.sun.xml.bind</groupId>

View File

@ -1,6 +1,5 @@
package com.ruoyi.common.constant; package com.ruoyi.common.constant;
import io.jsonwebtoken.Claims;
/** /**
* 通用常量信息 * 通用常量信息
@ -106,7 +105,7 @@ public class Constants {
/** /**
* 用户名称 * 用户名称
*/ */
public static final String JWT_USERNAME = Claims.SUBJECT; public static final String JWT_USERNAME = "sub";
/** /**
* 用户头像 * 用户头像

View File

@ -3,6 +3,10 @@ package com.ruoyi.system.service.impl;
import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.IdUtil;
import cn.hutool.http.useragent.UserAgent; import cn.hutool.http.useragent.UserAgent;
import cn.hutool.http.useragent.UserAgentUtil; 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.constant.Constants;
import com.ruoyi.common.core.domain.model.LoginUser; import com.ruoyi.common.core.domain.model.LoginUser;
import com.ruoyi.common.core.service.TokenService; import com.ruoyi.common.core.service.TokenService;
@ -11,9 +15,6 @@ import com.ruoyi.common.utils.RedisUtils;
import com.ruoyi.common.utils.ServletUtils; import com.ruoyi.common.utils.ServletUtils;
import com.ruoyi.common.utils.StringUtils; import com.ruoyi.common.utils.StringUtils;
import com.ruoyi.common.utils.ip.AddressUtils; 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.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -50,9 +51,9 @@ public class TokenServiceImpl implements TokenService {
String token = getToken(request); String token = getToken(request);
if (StringUtils.isNotEmpty(token)) { if (StringUtils.isNotEmpty(token)) {
try { try {
Claims claims = parseToken(token); JSONObject claims = parseToken(token);
// 解析对应的权限以及用户信息 // 解析对应的权限以及用户信息
String uuid = (String) claims.get(Constants.LOGIN_USER_KEY); String uuid = claims.getStr(Constants.LOGIN_USER_KEY);
String userKey = getTokenKey(uuid); String userKey = getTokenKey(uuid);
LoginUser user = RedisUtils.getCacheObject(userKey); LoginUser user = RedisUtils.getCacheObject(userKey);
return user; return user;
@ -153,9 +154,8 @@ public class TokenServiceImpl implements TokenService {
* @return 令牌 * @return 令牌
*/ */
private String createToken(Map<String, Object> claims) { private String createToken(Map<String, Object> claims) {
String token = Jwts.builder() JWTSigner signer = JWTSignerUtil.hs512(tokenProperties.getSecret().getBytes());
.setClaims(claims) String token = JWTUtil.createToken(claims, signer);
.signWith(SignatureAlgorithm.HS512, tokenProperties.getSecret()).compact();
return token; return token;
} }
@ -165,11 +165,9 @@ public class TokenServiceImpl implements TokenService {
* @param token 令牌 * @param token 令牌
* @return 数据声明 * @return 数据声明
*/ */
private Claims parseToken(String token) { private JSONObject parseToken(String token) {
return Jwts.parser() JWTSigner signer = JWTSignerUtil.hs512(tokenProperties.getSecret().getBytes());
.setSigningKey(tokenProperties.getSecret()) return JWTUtil.parseToken(token).setSigner(signer).getPayload().getClaimsJson();
.parseClaimsJws(token)
.getBody();
} }
/** /**
@ -180,8 +178,8 @@ public class TokenServiceImpl implements TokenService {
*/ */
@Override @Override
public String getUsernameFromToken(String token) { public String getUsernameFromToken(String token) {
Claims claims = parseToken(token); JSONObject claims = parseToken(token);
return claims.getSubject(); return claims.getStr("sub");
} }
/** /**