package com.codewalla.hrms.authentication.controller;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jws;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.security.Keys;
import java.security.Key;
import java.security.SecureRandom;
import java.util.Base64;
import java.util.Date;
public class JWTExample {
public static void main(String[] args) {
int keyLengthBytes = 64;
SecureRandom secureRandom = new SecureRandom();
byte[] keyBytes = new byte[keyLengthBytes];
secureRandom.nextBytes(keyBytes);
String secretKey = Base64.getUrlEncoder().withoutPadding().encodeToString(keyBytes);
String jws = Jwts.builder()
.setSubject("user123")
.setIssuer("example.com")
.setIssuedAt(new Date())
.setExpiration(new Date(System.currentTimeMillis() + 3600000)) // 1 hour expiration
.signWith(SignatureAlgorithm.HS256,secretKey)
.compact();
System.out.println("Generated JWT: " + jws);
try {
Jws<Claims> claimsJws = Jwts.parser()
.setSigningKey(secretKey)
.parseClaimsJws(jws);
Claims claims = claimsJws.getBody();
System.out.println("Subject: " + claims.getSubject());
System.out.println("Issuer: " + claims.getIssuer());
System.out.println("Expiration: " + claims.getExpiration());
} catch (Exception e) {
System.out.println("Invalid JWT: " + e.getMessage());
}
}
}
No comments:
Post a Comment