package com.*.util;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.JwtBuilder;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import java.util.Date;
import java.util.Map;
@ConfigurationProperties("jwt.config")
public class JwtUtil {
private String key;
private Long timeOut;
public String getKey() {
return key;
}
public void setKey(String key) {
this.key = key;
}
public Long getTimeOut() {
return timeOut;
}
public void setTimeOut(Long timeOut) {
this.timeOut = timeOut;
}
public String createJwt(String id, String name, Map<String,Object> map) {
long nowTime = System.currentTimeMillis();
long expirationTime = nowTime + timeOut;
JwtBuilder jwtBuilder = Jwts.builder();
jwtBuilder.setClaims(map);
jwtBuilder.setId(id);
jwtBuilder.setSubject(name);
jwtBuilder.setIssuedAt(new Date());
jwtBuilder.signWith(SignatureAlgorithm.HS256, key);
jwtBuilder.setExpiration(new Date(expirationTime));
String token = jwtBuilder.compact();
return token;
}
public Claims parseJwt(String token) {
Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody();
return claims;
}
}