Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Component
- public class JWTUtil implements Serializable {
- private static final long serialVersionUID = 1L;
- @Value("${springbootwebfluxjjwt.jjwt.secret}")
- private String secret;
- @Value("${springbootwebfluxjjwt.jjwt.expiration}")
- private String expirationTime;
- public Claims getAllClaimsFromToken(String token) {
- return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
- }
- public String getUsernameFromToken(String token) {
- return getAllClaimsFromToken(token).getSubject();
- }
- public Date getExpirationDateFromToken(String token) {
- return getAllClaimsFromToken(token).getExpiration();
- }
- private Boolean isTokenExpired(String token) {
- final Date expiration = getExpirationDateFromToken(token);
- return expiration.before(new Date());
- }
- public String generateToken(User user) {
- Map<String, Object> claims = new HashMap<>();
- claims.put("role", user.getRoles());
- claims.put("enable", user.getEnabled());
- return doGenerateToken(claims, user.getUsername());
- }
- private String doGenerateToken(Map<String, Object> claims, String username) {
- Long expirationTimeLong = Long.parseLong(expirationTime); //in second
- final Date createdDate = new Date();
- final Date expirationDate = new Date(createdDate.getTime() + expirationTimeLong * 1000);
- return Jwts.builder()
- .setClaims(claims)
- .setSubject(username)
- .setIssuedAt(createdDate)
- .setExpiration(expirationDate)
- .signWith(SignatureAlgorithm.HS512, secret)
- .compact();
- }
- public Boolean validateToken(String token) {
- return !isTokenExpired(token);
- }
- }
Add Comment
Please, Sign In to add comment