导包
<!-- Token认证 使用JJWT -->
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.9.0</version>
</dependency>
工具类
package common.security;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64;
import java.util.Date;
import java.util.Map;
public class TokenJJWT{
private final static String SCRENT = "!Qq123456";
private final static long TOKEN_EXPIRATION = 12*3600*1000L;
private static String userName = "test";
private static String password = "test123456";
public static String generateToken(Map<String,Object> m){
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
SecretKey secretKey = generalKey();
Date date = new Date(System.currentTimeMillis()+TOKEN_EXPIRATION);
JwtBuilder jwtBuilder = Jwts.builder()
.setHeaderParam("typ","JWT").setHeaderParam("alg","HS256")
.addClaims(m)
.signWith(signatureAlgorithm,secretKey)
.setExpiration(date);
return jwtBuilder.compact();
}
private static SecretKey generalKey(){
byte[] encodeKey = Base64.getDecoder().decode(SCRENT);
SecretKey key = new SecretKeySpec(encodeKey,0,encodeKey.length,"AES");
return key;
}
public static Claims validateJWT(String jwtToken){
Claims claims = Jwts.parser()
.setSigningKey(generalKey())
.parseClaimsJws(jwtToken).getBody();
return claims;
}
public static Object get(String jwtToken,String key){
Claims claims = validateJWT(jwtToken);
String value = claims.get(key,String.class);
return value;
}
}