/**
* JWT工具类
* 1.创建jwt
* 2.校验JWT合法性
* 3.返回载荷部分
*/
public class JWTUtil {
public static String key = "zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz";
/**
* 加密
*/
public static String createJWT(String usernme) throws Exception{
//1.创建jwt头部
JWSHeader jwsHeader = new JWSHeader
.Builder(JWSAlgorithm.HS256)
.type(JOSEObjectType.JWT)
.build();
//2.创建荷载,保存用户信息
Map userMap = new HashMap();
userMap.put("username",usernme);
Payload payload = new Payload(userMap);
//3.创建签名构造器,
//----3.1将头部与荷载拼接
JWSObject jwsObject = new JWSObject(jwsHeader,payload);
//----3.2根据密钥将jwsObject加密
JWSSigner jwsSigner = new MACSigner(key);
jwsObject.sign(jwsSigner);
return jwsObject.serialize();
}
/**
* 解密判断
* @param jwt
* @param key
*/
public static boolean getJieMi(String jwt,String key) throws Exception{
//将jwt字符串转成一个jwt对象
JWSObject parse = JWSObject.parse(jwt);
//将对象通过密钥解密
JWSVerifier jwsVerifier = new MACVerifier(key);
return parse.verify(jwsVerifier);
}
/**
* 获取荷载内容
* @param jwt
* @return
*/
public static Map getUserAccount(String jwt) throws Exception{
JWSObject jwsObject = JWSObject.parse(jwt);
Map map = jwsObject.getPayload().toJSONObject();
return map;
}
}
JWT工具类
于 2022-12-10 16:17:59 首次发布