From d4a50cedd7213731afc7e0924eba1d2d58167759 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E9=BB=84=E6=B5=B7?= <10402852@qq.com>
Date: Tue, 20 Aug 2024 13:02:30 +0800
Subject: [PATCH] 'commit'
---
pom.xml | 19 ++----
src/main/java/UnitTest/JWT.java | 21 +++++++
src/main/java/UnitTest/JwtUtil.java | 90 +++++++++++++++++++++++++++++
3 files changed, 115 insertions(+), 15 deletions(-)
create mode 100644 src/main/java/UnitTest/JWT.java
create mode 100644 src/main/java/UnitTest/JwtUtil.java
diff --git a/pom.xml b/pom.xml
index 592fb2e0..925c7974 100644
--- a/pom.xml
+++ b/pom.xml
@@ -125,23 +125,12 @@
mysql-connector-java
8.0.33
-
+
+
io.jsonwebtoken
- jjwt-api
- 0.11.2
-
-
- io.jsonwebtoken
- jjwt-impl
- 0.11.2
- runtime
-
-
- io.jsonwebtoken
- jjwt-jackson
- 0.11.2
- runtime
+ jjwt
+ 0.7.0
diff --git a/src/main/java/UnitTest/JWT.java b/src/main/java/UnitTest/JWT.java
new file mode 100644
index 00000000..d051248d
--- /dev/null
+++ b/src/main/java/UnitTest/JWT.java
@@ -0,0 +1,21 @@
+package UnitTest;
+
+import io.jsonwebtoken.Claims;
+
+public class JWT {
+ public static void main(String[] args) {
+ String Authorization = "Bearer eyJhbGciOiJIUzUxMiJ9.eyJkYXRlIjoiVHVlIEF1ZyAwNiAxMzozNzowNSBDU1QgMjAyNCIsInBob25lIjoiMTM3NTY1MTE5OTAiLCJ0eXBlIjoiV1giLCJ1c2VySWQiOiI5NDMxMiJ9.LhDheTMd_dZjR_0_cCT7aNy9waC105gMwmon7j5xPUPEmuiuZ2tToSWnjMVvzzWTKMvsvr7oZZXDJcr6h_Kv9g";
+ String token = Authorization.replaceFirst(JwtUtil.AUTHORIZATION_STARTER, "");
+ Claims cs = JwtUtil.getClaimsFromToken(token, JwtUtil.SECRET);
+
+ System.out.println(cs);
+ //String secret, String userId,String phone, String date,String type
+ //String jwt = JwtUtil.generateToken(JwtUtil.SECRET, "1", "18686619970", "2021-09-01 00:00:00", "1");
+ //System.out.println(jwt);
+
+ //String operatorId = (String) cs.get(JwtUtil.CLAIM_KEY_OPERATORID);
+ //String tokenTmp = JwtUtil.generateToken(token, JwtUtil.SECRET, operatorId, String.valueOf(cs.getExpiration()));
+
+ //System.out.println(tokenTmp);
+ }
+}
diff --git a/src/main/java/UnitTest/JwtUtil.java b/src/main/java/UnitTest/JwtUtil.java
new file mode 100644
index 00000000..0b61ab77
--- /dev/null
+++ b/src/main/java/UnitTest/JwtUtil.java
@@ -0,0 +1,90 @@
+package UnitTest;
+
+import io.jsonwebtoken.Claims;
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Created by zhzhan on 2017/6/30.
+ */
+public class JwtUtil {
+
+ public static final String AUTHORIZATION_MONITOR_STARTER="Monitor ";
+ public static final String AUTHORIZATION_STARTER = "Bearer ";
+ public static final String CLAIM_KEY_USERID = "userId";
+ public static final String CLAIM_KEY_OPERATORID = "operatorId";
+
+ public static final String CLAIM_KEY_PHONE = "phone";
+ public static final String CLAIM_KEY_DATE = "date";
+ public static final String CLAIM_KEY_TYPE = "type";
+ public static final String SECRET = "ZXZnZWVr5b+r5LmQ5L2g55qE5Ye66KGM";
+ public static final String CLAIM_MONITOR_ACCOUNT_NAME="accountName";
+ public static String generateToken(String secret, String userId,String phone,String type) {
+ Date date = new Date();
+ return generateToken(secret, userId,phone, date.toString(),type);
+ }
+
+ public static String generateToken(String secret, String userId,String phone, String date,String type) {
+ Map claims = new HashMap<>();
+ claims.put(JwtUtil.CLAIM_KEY_USERID, userId);
+ claims.put(JwtUtil.CLAIM_KEY_PHONE, phone);
+ claims.put(JwtUtil.CLAIM_KEY_DATE, date);
+ claims.put(JwtUtil.CLAIM_KEY_TYPE, type);
+ return Jwts.builder()
+ .setClaims(claims)
+// .setExpiration(date)
+ .signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的,不一定非要采用HS512
+ .compact();
+ }
+
+
+ public static String generateTokenMonitor(String secret, String userId,String phone,String type,String accountName) {
+ Date date = new Date();
+ return generateTokenMonitor(secret, userId,phone, date.toString(),type,accountName);
+ }
+
+ public static String generateTokenMonitor(String secret, String userId,String phone, String date,String type,String accountName) {
+ Map claims = new HashMap<>();
+ claims.put(JwtUtil.CLAIM_KEY_USERID, userId);
+ claims.put(JwtUtil.CLAIM_KEY_PHONE, phone);
+ claims.put(JwtUtil.CLAIM_KEY_DATE, date);
+ claims.put(JwtUtil.CLAIM_KEY_TYPE, type);
+ claims.put(JwtUtil.CLAIM_MONITOR_ACCOUNT_NAME, accountName);
+ return Jwts.builder()
+ .setClaims(claims)
+// .setExpiration(date)
+ .signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的,不一定非要采用HS512
+ .compact();
+ }
+
+
+ public static String generateToken(String secret, String operatorId, Date date) {
+ Map claims = new HashMap<>();
+ claims.put(JwtUtil.CLAIM_KEY_OPERATORID, operatorId);
+ return Jwts.builder()
+ .setClaims(claims)
+ .setExpiration(date)
+ .signWith(SignatureAlgorithm.HS512, secret) //采用什么算法是可以自己选择的,不一定非要采用HS512
+ .compact();
+ }
+
+
+ public static Claims getClaimsFromToken(String token, String secret) {
+ Claims claims;
+ try {
+ claims = Jwts.parser()
+ .setSigningKey(secret)
+ .parseClaimsJws(token)
+ .getBody();
+ } catch (Exception e) {
+ claims = null;
+ }
+ return claims;
+ }
+
+
+}