From c32965d129183697adff88d9b08b92e77a03b106 Mon Sep 17 00:00:00 2001 From: HuangHai <10402852@qq.com> Date: Tue, 29 Apr 2025 14:57:46 +0800 Subject: [PATCH] 'commit' --- dsBase/pom.xml | 16 ++++- .../java/com/dsideal/dsBase/Util/JwtUtil.java | 65 ++++++++++++------- dsGw/pom.xml | 2 +- dsRes/pom.xml | 2 +- .../com/dsideal/resource/Util/JwtUtil.java | 2 - pom.xml | 3 +- 6 files changed, 59 insertions(+), 31 deletions(-) diff --git a/dsBase/pom.xml b/dsBase/pom.xml index daad059e..1c4ac267 100644 --- a/dsBase/pom.xml +++ b/dsBase/pom.xml @@ -174,8 +174,20 @@ io.jsonwebtoken - jjwt - ${jjwt.version} + jjwt-api + ${jsonwebtoken.version} + + + io.jsonwebtoken + jjwt-impl + ${jsonwebtoken.version} + runtime + + + io.jsonwebtoken + jjwt-jackson + 0.11.5 + runtime it.sauronsoftware.cron4j diff --git a/dsBase/src/main/java/com/dsideal/dsBase/Util/JwtUtil.java b/dsBase/src/main/java/com/dsideal/dsBase/Util/JwtUtil.java index 15b01b68..dcd4acef 100644 --- a/dsBase/src/main/java/com/dsideal/dsBase/Util/JwtUtil.java +++ b/dsBase/src/main/java/com/dsideal/dsBase/Util/JwtUtil.java @@ -1,10 +1,13 @@ package com.dsideal.dsBase.Util; -import com.jfinal.kit.PropKit; +import com.dsideal.dsBase.BaseApplication; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; +import io.jsonwebtoken.security.Keys; +import com.jfinal.plugin.activerecord.Record; +import javax.crypto.SecretKey; import java.nio.charset.StandardCharsets; import java.util.Date; import java.util.HashMap; @@ -12,10 +15,13 @@ import java.util.Map; public class JwtUtil { public static final String AUTHORIZATION_STARTER = "Bearer "; - public static final String SECRET = PropKit.get("SECRET"); + public static final String SECRET = BaseApplication.PropKit.get("jwt.SECRET"); + + // 生成安全的密钥 + private static final SecretKey key = Keys.hmacShaKeyFor(SECRET.getBytes(StandardCharsets.UTF_8)); /** - * 功能:黄海开发的生成JWT函数 + * 功能:生成JWT函数 * * @param identity_id 身份ID * @param person_id 人员ID @@ -31,7 +37,11 @@ public class JwtUtil { claims.put("identity_id", identity_id); claims.put("person_id", person_id); claims.put("bureau_id", bureau_id); - return AUTHORIZATION_STARTER + Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS256, SECRET).compact(); + + return AUTHORIZATION_STARTER + Jwts.builder() + .setClaims(claims) + .signWith(key, SignatureAlgorithm.HS256) + .compact(); } public static Claims getClaims(String token) { @@ -40,33 +50,40 @@ public class JwtUtil { } Claims claims; try { - claims = Jwts.parser() - .setSigningKey(SECRET) + claims = Jwts.parserBuilder() + .setSigningKey(key) + .build() .parseClaimsJws(token) .getBody(); } catch (Exception e) { - try { - claims = Jwts.parser() - .setSigningKey(SECRET.getBytes(StandardCharsets.UTF_8)) - .parseClaimsJws(token) - .getBody(); - } catch (Exception err) { - claims = null; - } + claims = null; } return claims; } + /** + * 获取当前用户信息 + * + * @param token 票据 + * @return + */ + public static Record getPersonInfo(String token) { + Record record = new Record(); + Claims claims = getClaims(token); + if (claims != null) { + record.set("identity_id", claims.get("identity_id")); + record.set("person_id", claims.get("person_id")); + record.set("bureau_id", claims.get("bureau_id")); + record.set("create_time", claims.get("create_time")); + } + return record; + } + public static void main(String[] args) { - //GwApplication gw = new GwApplication(); String token = generateToken(4, "0b64e31e-a85e-43eb-ba5f-3088d986a8da", "3f7f4c90-645a-4fb9-9902-447846cf1dcc"); - /** - 结论: - 1、JWT的里面有三个关键信息,一个是identity_id,另一个是person_id,还有一个bureau_id - */ - Claims claims = getClaims(token); - System.out.println(claims.get("identity_id")); - System.out.println(claims.get("person_id")); - System.out.println(claims.get("bureau_id")); + System.out.println(token); + + Record record=getPersonInfo(token); + System.out.println(record); } -} +} \ No newline at end of file diff --git a/dsGw/pom.xml b/dsGw/pom.xml index e90bd811..34706c26 100644 --- a/dsGw/pom.xml +++ b/dsGw/pom.xml @@ -132,7 +132,7 @@ io.jsonwebtoken - jjwt + jjwt-api ${jjwt.version} diff --git a/dsRes/pom.xml b/dsRes/pom.xml index 5c612905..d88fb282 100644 --- a/dsRes/pom.xml +++ b/dsRes/pom.xml @@ -221,7 +221,7 @@ io.jsonwebtoken - jjwt + jjwt-api ${jjwt.version} diff --git a/dsRes/src/main/java/com/dsideal/resource/Util/JwtUtil.java b/dsRes/src/main/java/com/dsideal/resource/Util/JwtUtil.java index be5c3dfc..a38b6428 100644 --- a/dsRes/src/main/java/com/dsideal/resource/Util/JwtUtil.java +++ b/dsRes/src/main/java/com/dsideal/resource/Util/JwtUtil.java @@ -4,10 +4,8 @@ import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.impl.DefaultClaims; import javax.servlet.http.HttpServletRequest; -import java.net.http.HttpRequest; import java.nio.charset.StandardCharsets; import java.util.HashMap; import java.util.Map; diff --git a/pom.xml b/pom.xml index c8bdf141..d50c6bd4 100644 --- a/pom.xml +++ b/pom.xml @@ -81,7 +81,8 @@ 0.2.19 - 0.7.0 + 0.11.5 + 0.11.5 5.8.37