java.lang.Object
org.miaixz.bus.auth.metric.jwt.JWTVerifier
JWT 数据校验器,用于验证 JWT 的算法、签名和时间字段。
- 算法是否一致
- 签名是否正确
- 时间字段是否有效(如未过期、已生效等)
- Since:
- Java 17+
- Author:
- Kimi Liu
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic JWTVerifier创建 JWT 验证器,从令牌字符串初始化。static JWTVerifier创建 JWT 验证器,从现有 JWT 对象初始化。验证 JWT 的算法和签名,使用 JWT 对象自带的签名器。validateAlgorithm(org.miaixz.bus.auth.metric.jwt.signature.JWTSigner signer) 验证 JWT 的算法和签名,使用指定的签名器。验证 JWT 的时间字段,使用当前时间。validateDate(Date dateToCheck) 验证 JWT 的时间字段,使用指定时间。validateDate(Date dateToCheck, long leeway) 验证 JWT 的时间字段,带容忍时间。static boolean验证JWT Token有效性static boolean验证JWT Token有效性
-
Constructor Details
-
JWTVerifier
构造函数,初始化验证器。- Parameters:
jwt- 要验证的 JWT 对象
-
-
Method Details
-
of
创建 JWT 验证器,从令牌字符串初始化。- Parameters:
token- JWT 令牌字符串- Returns:
- this
-
of
创建 JWT 验证器,从现有 JWT 对象初始化。- Parameters:
jwt- JWT 对象- Returns:
- this
-
verify
验证JWT Token有效性- Parameters:
token- JWT Tokenkey- HS256(HmacSHA256)密钥- Returns:
- 是否有效
-
verify
public static boolean verify(String token, org.miaixz.bus.auth.metric.jwt.signature.JWTSigner signer) 验证JWT Token有效性- Parameters:
token- JWT Tokensigner- 签名器- Returns:
- 是否有效
-
validateAlgorithm
验证 JWT 的算法和签名,使用 JWT 对象自带的签名器。- Returns:
- 当前 JWTVerifier 实例
- Throws:
org.miaixz.bus.core.lang.exception.ValidateException- 如果算法不匹配或签名无效
-
validateAlgorithm
public JWTVerifier validateAlgorithm(org.miaixz.bus.auth.metric.jwt.signature.JWTSigner signer) throws org.miaixz.bus.core.lang.exception.ValidateException 验证 JWT 的算法和签名,使用指定的签名器。- Parameters:
signer- 用于验证的签名器,null 时使用 JWT 自带的签名器- Returns:
- 当前 JWTVerifier 实例
- Throws:
org.miaixz.bus.core.lang.exception.ValidateException- 如果算法不匹配或签名无效IllegalArgumentException- 如果未提供签名器且 JWT 要求签名
-
validateDate
验证 JWT 的时间字段,使用当前时间。- notBefore (nbf):生效时间不能晚于当前时间
- expiresAt (exp):失效时间不能早于当前时间
- issuedAt (iat):签发时间不能晚于当前时间
- Returns:
- 当前 JWTVerifier 实例
- Throws:
org.miaixz.bus.core.lang.exception.ValidateException- 如果时间字段无效
-
validateDate
public JWTVerifier validateDate(Date dateToCheck) throws org.miaixz.bus.core.lang.exception.ValidateException 验证 JWT 的时间字段,使用指定时间。- Parameters:
dateToCheck- 被检查的时间,通常为当前时间- Returns:
- this
- Throws:
org.miaixz.bus.core.lang.exception.ValidateException- 如果时间字段无效
-
validateDate
public JWTVerifier validateDate(Date dateToCheck, long leeway) throws org.miaixz.bus.core.lang.exception.ValidateException 验证 JWT 的时间字段,带容忍时间。- Parameters:
dateToCheck- 被检查的时间,通常为当前时间leeway- 容忍时间(秒),用于时间检查的宽松度- Returns:
- this
- Throws:
org.miaixz.bus.core.lang.exception.ValidateException- 如果时间字段无效
-