|
@@ -90,92 +90,6 @@ public class JwtUtil {
|
|
|
return userName.asString();
|
|
|
}
|
|
|
|
|
|
-// public static String createWxJWT(long ttlMillis, Map<String, Object> paramMap) {
|
|
|
-// //指定签名的时候使用的签名算法,也就是header那部分,jjwt已经将这部分内容封装好了。
|
|
|
-// SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
|
|
|
-//
|
|
|
-//
|
|
|
-// //生成JWT的时间
|
|
|
-// long nowMillis = System.currentTimeMillis();
|
|
|
-// Date now = new Date(nowMillis);
|
|
|
-// String openId = paramMap.get("openId").toString();
|
|
|
-//
|
|
|
-// //创建payload的私有声明(根据特定的业务需要添加,如果要拿这个做验证,一般是需要和jwt的接收方提前沟通好验证方式的)
|
|
|
-// Map<String, Object> claims = new HashMap<String, Object>();
|
|
|
-// claims.put("openId", openId);
|
|
|
-// claims.put("sessionKey", paramMap.get("sessionKey"));
|
|
|
-//
|
|
|
-// //下面就是在为payload添加各种标准声明和私有声明了
|
|
|
-// //这里其实就是new一个JwtBuilder,设置jwt的body
|
|
|
-// JwtBuilder builder = Jwts.builder()
|
|
|
-// //如果有私有声明,一定要先设置这个自己创建的私有的声明,这个是给builder的claim赋值,一旦写在标准的声明赋值之后,就是覆盖了那些标准的声明的
|
|
|
-// .setClaims(claims)
|
|
|
-// //设置jti(JWT ID):是JWT的唯一标识,根据业务需要,这个可以设置为一个不重复的值,主要用来作为一次性token,从而回避重放攻击。
|
|
|
-// .setId(UUID.randomUUID().toString())
|
|
|
-// //iat: jwt的签发时间
|
|
|
-// .setIssuedAt(now)
|
|
|
-// //代表这个JWT的主体,即它的所有人,这个是一个json格式的字符串,可以存放什么userid,roldid之类的,作为什么用户的唯一标志。
|
|
|
-// .setSubject(openId)
|
|
|
-// //设置签名使用的签名算法和签名使用的秘钥
|
|
|
-// .signWith(signatureAlgorithm, SECRET);
|
|
|
-//
|
|
|
-// if (ttlMillis >= 0) {
|
|
|
-// long expMillis = nowMillis + ttlMillis;
|
|
|
-// Date exp = new Date(expMillis);
|
|
|
-// //设置过期时间
|
|
|
-// builder.setExpiration(exp);
|
|
|
-// }/*else{
|
|
|
-// //设置过期时间半小时
|
|
|
-// DateTime expDate = new DateTime().plusMinutes(30);
|
|
|
-// builder.setExpiration(expDate.toDate());
|
|
|
-// }*/
|
|
|
-// return builder.compact();
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
-// public static String createMapJWT(long ttlMillis, Map<String, Object> paramMap) {
|
|
|
-// //指定签名的时候使用的签名算法,也就是header那部分,jjwt已经将这部分内容封装好了。
|
|
|
-// SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
|
|
|
-//
|
|
|
-//
|
|
|
-// //生成JWT的时间
|
|
|
-// long nowMillis = System.currentTimeMillis();
|
|
|
-// Date now = new Date(nowMillis);
|
|
|
-// String openId = paramMap.get("openId").toString();
|
|
|
-//
|
|
|
-// //创建payload的私有声明(根据特定的业务需要添加,如果要拿这个做验证,一般是需要和jwt的接收方提前沟通好验证方式的)
|
|
|
-//// Map<String, Object> claims = new HashMap<String, Object>();
|
|
|
-//// claims.put("openId", openId);
|
|
|
-//// claims.put("sessionKey", paramMap.get("sessionKey"));
|
|
|
-//
|
|
|
-// //下面就是在为payload添加各种标准声明和私有声明了
|
|
|
-// //这里其实就是new一个JwtBuilder,设置jwt的body
|
|
|
-// JwtBuilder builder = Jwts.builder()
|
|
|
-// //如果有私有声明,一定要先设置这个自己创建的私有的声明,这个是给builder的claim赋值,一旦写在标准的声明赋值之后,就是覆盖了那些标准的声明的
|
|
|
-// .setClaims(paramMap)
|
|
|
-// //设置jti(JWT ID):是JWT的唯一标识,根据业务需要,这个可以设置为一个不重复的值,主要用来作为一次性token,从而回避重放攻击。
|
|
|
-// .setId(UUID.randomUUID().toString())
|
|
|
-// //iat: jwt的签发时间
|
|
|
-// .setIssuedAt(now)
|
|
|
-// //代表这个JWT的主体,即它的所有人,这个是一个json格式的字符串,可以存放什么userid,roldid之类的,作为什么用户的唯一标志。
|
|
|
-// .setSubject(openId)
|
|
|
-// //设置签名使用的签名算法和签名使用的秘钥
|
|
|
-// .signWith(signatureAlgorithm, SECRET);
|
|
|
-//
|
|
|
-// if (ttlMillis >= 0) {
|
|
|
-// long expMillis = nowMillis + ttlMillis;
|
|
|
-// Date exp = new Date(expMillis);
|
|
|
-// //设置过期时间
|
|
|
-// builder.setExpiration(exp);
|
|
|
-// }/*else{
|
|
|
-// //设置过期时间半小时
|
|
|
-// DateTime expDate = new DateTime().plusMinutes(30);
|
|
|
-// builder.setExpiration(expDate.toDate());
|
|
|
-// }*/
|
|
|
-// return builder.compact();
|
|
|
-// }
|
|
|
-
|
|
|
-
|
|
|
|
|
|
/**
|
|
|
* Token的解密
|