// // Source code recreated from a .class file by IntelliJ IDEA // (powered by FernFlower decompiler) // package com.luozhihui.project.util; import com.auth0.jwt.JWT; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.TokenExpiredException; import com.auth0.jwt.interfaces.DecodedJWT; import com.auth0.jwt.interfaces.JWTVerifier; import com.auth0.jwt.interfaces.Verification; import java.util.Date; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.stereotype.Component; @Component @ConfigurationProperties( prefix = "jwt" ) public class JwtUtil { public static String header; public static String tokenPrefix; public static String secret; public static long expireTime; public static final String USER_LOGIN_TOKEN = "token"; public JwtUtil() { } public void setHeader(String header) { JwtUtil.header = header; } public void setTokenPrefix(String tokenPrefix) { JwtUtil.tokenPrefix = tokenPrefix; } public void setSecret(String secret) { JwtUtil.secret = secret; } public void setExpireTime(int expireTimeInt) { expireTime = (long)expireTimeInt; } public static String createToken(String sub) { return tokenPrefix + JWT.create().withSubject(sub).withExpiresAt(new Date(System.currentTimeMillis() + expireTime)).sign(Algorithm.HMAC512(secret)); } public static String validateToken(String token) throws Exception { try { Verification verification = JWT.require(Algorithm.HMAC512(secret)); JWTVerifier jwtVerifier = verification.build(); String noPrefixToken = token.replace(tokenPrefix, ""); DecodedJWT decodedJwt = jwtVerifier.verify(noPrefixToken); return decodedJwt != null ? decodedJwt.getSubject() : ""; } catch (TokenExpiredException var5) { TokenExpiredException e = var5; e.printStackTrace(); return ""; } catch (Exception var6) { Exception e = var6; e.printStackTrace(); return ""; } } public static boolean isNeedUpdate(String token) throws Exception { Date expiresAt = null; try { expiresAt = JWT.require(Algorithm.HMAC512(secret)).build().verify(token.replace(tokenPrefix, "")).getExpiresAt(); } catch (TokenExpiredException var3) { return true; } catch (Exception var4) { throw new Exception("token 验证失败"); } return expiresAt.getTime() - System.currentTimeMillis() < expireTime >> 1; } }