From b365a0879edc787655b908b0dbb65b5e966bb23b Mon Sep 17 00:00:00 2001 From: 严智鑫 <test> Date: 星期二, 07 五月 2024 09:03:08 +0800 Subject: [PATCH] 公共yml文件 ip 改回10.153.19.150 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/common/utils/JwtUtil.java | 121 +++++++++------------------------------- 1 files changed, 28 insertions(+), 93 deletions(-) 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(); - } - } -- Gitblit v1.8.0