From c0af27c484532b8bdc1a6e9aef87fccfbf988b6a Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期四, 25 四月 2024 14:33:24 +0800
Subject: [PATCH] fixbug:token解析失败
---
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java | 2
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java | 121 +++++++++-------------------------------
hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java | 2
hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java | 12 ---
4 files changed, 31 insertions(+), 106 deletions(-)
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
index 5be6d66..e993f38 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/filter/JwtAuthenticationTokenFilter.java
@@ -50,7 +50,7 @@
//瑙f瀽token
String userid;
try {
- Claims claims = JwtUtil.parseJWT(token);
+ Claims claims = JwtUtil.getClaimByToken(token);
userid = claims.getSubject();
} catch (Exception e) {
e.printStackTrace();
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
index 8c8f0d9..f7af90a 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java
@@ -2,119 +2,54 @@
import io.jsonwebtoken.Claims;
-import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
+import lombok.Data;
-import javax.crypto.SecretKey;
-import javax.crypto.spec.SecretKeySpec;
-import java.util.Base64;
import java.util.Date;
-import java.util.UUID;
/**
* @Author : zhoush
* @Date: 2024/4/9 19:15
* @Description:
*/
+@Data
public class JwtUtil {
- //鏈夋晥鏈熶负
- public static final Long JWT_TTL = 60 * 60 * 1000L;// 60 * 60 *1000 涓�涓皬鏃�
- //璁剧疆绉橀挜鏄庢枃
- public static final String JWT_KEY = "sangeng";
+ private static final long expire = 60 * 60 * 1000L;
+ private static final String secret = "beibo";
+ private static final String header = "Authorization";
- public static String getUUID() {
- String token = UUID.randomUUID().toString().replaceAll("-", "");
- return token;
- }
+ // 鐢熸垚jwt
+ public static String generateToken(String username) {
- /**
- * 鐢熸垚jtw
- *
- * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
- * @return
- */
- public static String createJWT(String subject) {
- JwtBuilder builder = getJwtBuilder(subject, null, getUUID());// 璁剧疆杩囨湡鏃堕棿
- return builder.compact();
- }
+ Date nowDate = new Date();
+ Date expireDate = new Date(nowDate.getTime() + 1000 * expire);
- /**
- * 鐢熸垚jtw
- *
- * @param subject token涓瀛樻斁鐨勬暟鎹紙json鏍煎紡锛�
- * @param ttlMillis token瓒呮椂鏃堕棿
- * @return
- */
- public static String createJWT(String subject, Long ttlMillis) {
- JwtBuilder builder = getJwtBuilder(subject, ttlMillis, getUUID());// 璁剧疆杩囨湡鏃堕棿
- return builder.compact();
- }
-
- private static JwtBuilder getJwtBuilder(String subject, Long ttlMillis, String uuid) {
- SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
- SecretKey secretKey = generalKey();
- long nowMillis = System.currentTimeMillis();
- Date now = new Date(nowMillis);
- if (ttlMillis == null) {
- ttlMillis = JwtUtil.JWT_TTL;
- }
- long expMillis = nowMillis + ttlMillis;
- Date expDate = new Date(expMillis);
return Jwts.builder()
- .setId(uuid) //鍞竴鐨処D
- .setSubject(subject) // 涓婚 鍙互鏄疛SON鏁版嵁
- .setIssuer("sg") // 绛惧彂鑰�
- .setIssuedAt(now) // 绛惧彂鏃堕棿
- .signWith(signatureAlgorithm, secretKey) //浣跨敤HS256瀵圭О鍔犲瘑绠楁硶绛惧悕, 绗簩涓弬鏁颁负绉橀挜
- .setExpiration(expDate);
+ .setHeaderParam("typ", "JWT")
+ .setSubject(username)
+ .setIssuedAt(nowDate)
+ .setExpiration(expireDate)// 7澶╅亷鏈�
+ .signWith(SignatureAlgorithm.HS512, secret)
+ .compact();
}
- /**
- * 鍒涘缓token
- *
- * @param id
- * @param subject
- * @param ttlMillis
- * @return
- */
- public static String createJWT(String id, String subject, Long ttlMillis) {
- JwtBuilder builder = getJwtBuilder(subject, ttlMillis, id);// 璁剧疆杩囨湡鏃堕棿
- return builder.compact();
+ // 瑙f瀽jwt
+ public static Claims getClaimByToken(String jwt) {
+ try {
+ return Jwts.parser()
+ .setSigningKey(secret)
+ .parseClaimsJws(jwt)
+ .getBody();
+ } catch (Exception e) {
+ return null;
+ }
}
- public static void main(String[] args) throws Exception {
- String token = "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJjYWM2ZDVhZi1mNjVlLTQ0MDAtYjcxMi0zYWEwOGIyOTIwYjQiLCJzdWIiOiJzZyIsImlzcyI6InNnIiwiaWF0IjoxNjM4MTA2NzEyLCJleHAiOjE2MzgxMTAzMTJ9.JVsSbkP94wuczb4QryQbAke3ysBDIL5ou8fWsbt_ebg";
- Claims claims = parseJWT(token);
- System.out.println(claims);
+ // jwt鏄惁杩囨湡
+ public boolean isTokenExpired(Claims claims) {
+ return claims.getExpiration().before(new Date());
}
-
- /**
- * 鐢熸垚鍔犲瘑鍚庣殑绉橀挜 secretKey
- *
- * @return
- */
- public static SecretKey generalKey() {
- byte[] encodedKey = Base64.getDecoder().decode(JwtUtil.JWT_KEY);
- SecretKey key = new SecretKeySpec(encodedKey, 0, encodedKey.length, "AES");
- return key;
- }
-
- /**
- * 瑙f瀽
- *
- * @param jwt
- * @return
- * @throws Exception
- */
- public static Claims parseJWT(String jwt) throws Exception {
- SecretKey secretKey = generalKey();
- return Jwts.parser()
- .setSigningKey(secretKey)
- .parseClaimsJws(jwt)
- .getBody();
- }
-
}
diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
index f6207b7..b8f3259 100644
--- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
+++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/userinfo/service/impl/SysUserServiceImpl.java
@@ -54,7 +54,7 @@
//浣跨敤userid鐢熸垚token
LoginUser loginUser = (LoginUser) authenticate.getPrincipal();
String userId = loginUser.getUser().getId().toString();
- String jwt = JwtUtil.createJWT(userId);
+ String jwt = JwtUtil.generateToken(userId);
//authenticate瀛樺叆redis
redisUtil.setCacheObject("login:" + userId, loginUser);
//鎶妕oken鍝嶅簲缁欏墠绔�
diff --git a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
index 0787b09..19c0f67 100644
--- a/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
+++ b/hangzhoumesParent/moduleService/UnLoadGlassModule/src/main/java/com/mes/downworkstation/entity/DownWorkstationTask.java
@@ -5,9 +5,6 @@
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.data.annotation.Id;
-import javax.persistence.GeneratedValue;
-import javax.persistence.GenerationType;
-//import javax.persistence.Id;
import java.io.Serializable;
@@ -25,15 +22,8 @@
private static final long serialVersionUID = 1L;
- /**
- * id
- */
- @TableId(value = "id", type = IdType.AUTO)
-
-
-
@Id
- @GeneratedValue(strategy = GenerationType.IDENTITY)
+ @TableId(value = "id", type = IdType.AUTO)
private Long id;
/**
--
Gitblit v1.8.0