io.jsonwebtoken
jjwt
0.9.1
二、JWT工具类
package com.party.util;
import com.alibaba.fastjson.util.IOUtils;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import org.springframework.core.io.ClassPathResource;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Date;
import java.util.Map;
import java.util.UUID;
public class JwtUtils {
private static final Long EXPIRE= (long) 24 * 60 * 60 * 1000;
private static final String JWT_ID= UUID.randomUUID().toString();
//私钥
private static final String KEY=getSecretKey();
public static String createJWT(Map body){
JwtBuilder jwtBuilder= Jwts.builder()
.setId(JWT_ID)//JWT的唯一身份标识
.signWith(SignatureAlgorithm.HS256,KEY)
.setClaims(body)//放置body数据
.setIssuedAt(new Date())//签发时间
.setExpiration(new Date(System.currentTimeMillis()+EXPIRE));//过期时间
return jwtBuilder.compact();
}
public static Map parseJwt(String jwt) throws Exception{
return Jwts.parser().setSigningKey(KEY).parseClaimsJws(jwt).getBody();
}
private static String getSecretKey(){
ClassPathResource classPathResource=new ClassPathResource("app_private_key.pem");
try {
InputStreamReader inputStreamReader = new InputStreamReader(classPathResource.getInputStream());
return IOUtils.readAll(inputStreamReader);
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
调用createJWT生成JWT,调用parseJWT解析jwt。



