Guest User

Untitled

a guest
Jul 22nd, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. @Component
  2. public class JWTUtil implements Serializable {
  3.  
  4. private static final long serialVersionUID = 1L;
  5.  
  6. @Value("${springbootwebfluxjjwt.jjwt.secret}")
  7. private String secret;
  8.  
  9. @Value("${springbootwebfluxjjwt.jjwt.expiration}")
  10. private String expirationTime;
  11.  
  12. public Claims getAllClaimsFromToken(String token) {
  13. return Jwts.parser().setSigningKey(secret).parseClaimsJws(token).getBody();
  14. }
  15.  
  16. public String getUsernameFromToken(String token) {
  17. return getAllClaimsFromToken(token).getSubject();
  18. }
  19.  
  20. public Date getExpirationDateFromToken(String token) {
  21. return getAllClaimsFromToken(token).getExpiration();
  22. }
  23.  
  24. private Boolean isTokenExpired(String token) {
  25. final Date expiration = getExpirationDateFromToken(token);
  26. return expiration.before(new Date());
  27. }
  28.  
  29. public String generateToken(User user) {
  30. Map<String, Object> claims = new HashMap<>();
  31. claims.put("role", user.getRoles());
  32. claims.put("enable", user.getEnabled());
  33. return doGenerateToken(claims, user.getUsername());
  34. }
  35.  
  36. private String doGenerateToken(Map<String, Object> claims, String username) {
  37. Long expirationTimeLong = Long.parseLong(expirationTime); //in second
  38.  
  39. final Date createdDate = new Date();
  40. final Date expirationDate = new Date(createdDate.getTime() + expirationTimeLong * 1000);
  41. return Jwts.builder()
  42. .setClaims(claims)
  43. .setSubject(username)
  44. .setIssuedAt(createdDate)
  45. .setExpiration(expirationDate)
  46. .signWith(SignatureAlgorithm.HS512, secret)
  47. .compact();
  48. }
  49.  
  50. public Boolean validateToken(String token) {
  51. return !isTokenExpired(token);
  52. }
  53.  
  54. }
Add Comment
Please, Sign In to add comment