diff --git a/backend/src/main/java/com/iiitinsider/config/JwtService.java b/backend/src/main/java/com/iiitinsider/config/JwtService.java deleted file mode 100644 index 932e191..0000000 --- a/backend/src/main/java/com/iiitinsider/config/JwtService.java +++ /dev/null @@ -1,76 +0,0 @@ -package com.iiitinsider.config; - -import io.jsonwebtoken.Claims; -import io.jsonwebtoken.Jwts; -import io.jsonwebtoken.SignatureAlgorithm; -import io.jsonwebtoken.security.Keys; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.stereotype.Service; - -import javax.crypto.SecretKey; -import java.nio.charset.StandardCharsets; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; -import java.util.function.Function; - -@Service -public class JwtService { - - @Value("${jwt.secret}") - private String secretKey; - - @Value("${jwt.expiration-ms}") - private long expirationMs; - - private SecretKey getSigningKey() { - byte[] keyBytes = secretKey.getBytes(StandardCharsets.UTF_8); - return Keys.hmacShaKeyFor(keyBytes); - } - - public String extractUsername(String token) { - return extractClaim(token, Claims::getSubject); - } - - public Date extractExpiration(String token) { - return extractClaim(token, Claims::getExpiration); - } - - public T extractClaim(String token, Function claimsResolver) { - final Claims claims = extractAllClaims(token); - return claimsResolver.apply(claims); - } - - private Claims extractAllClaims(String token) { - return Jwts.parser() - .verifyWith(getSigningKey()) - .build() - .parseSignedClaims(token) - .getPayload(); - } - - private Boolean isTokenExpired(String token) { - return extractExpiration(token).before(new Date()); - } - - public Boolean isTokenValid(String token, UserDetails userDetails) { - final String username = extractUsername(token); - return (username.equals(userDetails.getUsername())) && !isTokenExpired(token); - } - - public String generateToken(UserDetails userDetails) { - Map claims = new HashMap<>(); - return createToken(claims, userDetails.getUsername()); - } - - private String createToken(Map claims, String subject) { - return Jwts.builder() - .claims(claims) - .subject(subject) - .issuedAt(new Date(System.currentTimeMillis())) - .expiration(new Date(System.currentTimeMillis() + expirationMs)) - .signWith(getSigningKey()) - .compact(); - } -}