| 
					
				 | 
			
			
				@@ -6,41 +6,24 @@ import io.jsonwebtoken.ExpiredJwtException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.jsonwebtoken.Jwts; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.jsonwebtoken.security.Keys; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import io.jsonwebtoken.security.SignatureException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import lombok.Getter; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import javax.crypto.SecretKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Date; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.HashMap; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import java.util.Map; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 public class JwtUtils { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 配置参数(可从配置中心读取) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    private static final String SECRET = "zfire@2025_base_code_security_key_123456"; // 64位HMAC-SHA512密钥 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    private static final long EXPIRATION = 7200L; // 默认有效期2小时(秒) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    private static final String ISSUER = "base-code-system"; // 签发者 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // HMAC-SHA512签名算法 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 //    private static final SecretKey SECRET_KEY = Keys.hmacShaKeyFor(SECRET.getBytes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    // 从配置中心读取参数(示例从application.yml读取) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static String secret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Getter 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static Long expiration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private static SecretKey secretKey; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Value("${jwt.secret}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setSecret(String secret) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        JwtUtils.secret = secret; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        secretKey = Keys.hmacShaKeyFor(secret.getBytes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    @Value("${jwt.expiration}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public void setExpiration(Long expiration) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        JwtUtils.expiration = expiration; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final String secret = "uH31bHvL+P1jl5OvHfqLPhJDkfqHWIEL6e7HEpTMLozNAlGH88SUlXlWc7KK/SgWh1oZjvW7f8d43Bm0+J7hnw=="; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final Long expiration = 7200L; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private static final SecretKey secretKey = Keys.hmacShaKeyFor(secret.getBytes()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      * 生成JWT令牌 
			 |