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; + } + + +}