Skip to content
Snippets Groups Projects
Commit 4768062c authored by Iqbal's avatar Iqbal
Browse files

Created token validator

parent 21b9abe5
Branches
No related merge requests found
package identity.controller;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.SignatureException;
import io.jsonwebtoken.impl.crypto.MacProvider;
import javax.crypto.spec.SecretKeySpec;
import java.security.Key;
import java.util.Date;
public class Validator {
private static Key key = MacProvider.generateKey();
private final static long ttlMillis = 600000;
public static String generateToken(String username) {
SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
long nowMillis = System.currentTimeMillis();
long expMillis = nowMillis + ttlMillis;
Date now = new Date(nowMillis);
Date exp = new Date(expMillis);
String jwt = Jwts.builder()
.setSubject(username)
.setIssuedAt(now)
.setExpiration(exp)
.signWith(signatureAlgorithm, key)
.compact();
return jwt;
}
public static String validate(String jwt) {
String subject = "unauthorized";
try {
Claims claims = Jwts.parser().setSigningKey(key).parseClaimsJws(jwt).getBody();
subject = claims.getSubject();
if (isExpired(claims.getExpiration())) {
subject = "expired";
}
} catch (SignatureException e) {
e.printStackTrace();
}
return subject;
}
private static boolean isExpired(Date expiration) {
long nowMillis = System.currentTimeMillis();
Date now = new Date(nowMillis);
return expiration.before(now);
}
}
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment