You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
100 lines
2.2 KiB
100 lines
2.2 KiB
package com.fr.plugin; |
|
|
|
|
|
import io.jsonwebtoken.Claims; |
|
import io.jsonwebtoken.Jwts; |
|
|
|
import java.util.Date; |
|
|
|
/** |
|
* 客户提供的类未做修改 |
|
* |
|
* |
|
* @author zst |
|
* @date 2022-06-02 |
|
*/ |
|
public class JwtUtil { |
|
//JWT密钥 |
|
public static final String JWT_SECRET = "xx"; |
|
|
|
/** |
|
* 验证token是否失效 |
|
* |
|
* @param token |
|
* @param secret |
|
* @return true:过期 false:没过期 |
|
*/ |
|
public static boolean isTokenExpired(String token, String secret) { |
|
Date expiration = getExpirationDateFromToken(token, secret); |
|
return expiration.before(new Date()); |
|
} |
|
|
|
/** |
|
* 从token中获取用户id |
|
* |
|
* @param token |
|
* @param secret |
|
* @return |
|
*/ |
|
public static String getUserIdFromToken(String token, String secret) { |
|
return getClaimFromToken(token, secret).getSubject(); |
|
} |
|
|
|
/** |
|
* 获取token发布时间 |
|
* |
|
* @param token |
|
* @param secret |
|
* @return |
|
*/ |
|
public static Date getIssuedAtDateFromToken(String token, String secret) { |
|
return getClaimFromToken(token, secret).getIssuedAt(); |
|
} |
|
|
|
/** |
|
* 获取token失效时间 |
|
* |
|
* @param token |
|
* @param secret |
|
* @return |
|
*/ |
|
public static Date getExpirationDateFromToken(String token, String secret) { |
|
return getClaimFromToken(token, secret).getExpiration(); |
|
} |
|
|
|
/** |
|
* 获取token接收者 |
|
* |
|
* @param token |
|
* @param secret |
|
* @return |
|
*/ |
|
public static String getAudienceFromToken(String token, String secret) { |
|
return getClaimFromToken(token, secret).getAudience(); |
|
} |
|
|
|
/** |
|
* 获取私有claim |
|
* |
|
* @param token |
|
* @param key |
|
* @param secret |
|
* @return |
|
*/ |
|
public static String getPrivateClaimFromToken(String token, String key, String secret) { |
|
return getClaimFromToken(token, secret).get(key).toString(); |
|
} |
|
|
|
/** |
|
* 获取jwt的payload部分 |
|
* |
|
* @param token |
|
* @param secret |
|
* @return |
|
*/ |
|
private static Claims getClaimFromToken(String token, String secret) { |
|
return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody(); |
|
} |
|
|
|
|
|
}
|
|
|