Class JwtProvider

java.lang.Object
org.example.crmedu.infrastructure.auth.jwt.JwtProvider

@Component public class JwtProvider extends Object
This class manages access and refresh tokens, ensuring secure authentication. It generates signed JWTs for users, validates incoming tokens, and extracts claims.
  • Constructor Details

    • JwtProvider

      public JwtProvider(@Value("${jwt.secret.access}") String jwtAccessSecret, @Value("${jwt.secret.refresh}") String jwtRefreshSecret)
      Initializes secret keys for JWT signing.
      Parameters:
      jwtAccessSecret - the secret key for access tokens
      jwtRefreshSecret - the secret key for refresh tokens
  • Method Details

    • generateAccessToken

      public String generateAccessToken(@NonNull @NonNull User user)
      Generates an access token for a user.
      Parameters:
      user - the authenticated user
      Returns:
      the signed JWT access token
    • generateRefreshToken

      public String generateRefreshToken(@NonNull @NonNull User user)
      Generates a refresh token for a user.
      Parameters:
      user - the authenticated user
      Returns:
      the signed JWT refresh token
    • isAccessTokenValid

      public boolean isAccessTokenValid(@NonNull @NonNull String accessToken)
      Validates the given access token.
      Parameters:
      accessToken - the token to validate
      Returns:
      true if valid, otherwise throws an exception
    • isRefreshTokenValid

      public boolean isRefreshTokenValid(@NonNull @NonNull String refreshToken)
      Validates the given refresh token.
      Parameters:
      refreshToken - the token to validate
      Returns:
      true if valid, otherwise throws an exception
    • getAccessClaims

      public io.jsonwebtoken.Claims getAccessClaims(@NonNull @NonNull String token)
      Extracts claims from an access token.
      Parameters:
      token - the JWT token
      Returns:
      the extracted claims
    • getRefreshClaims

      public io.jsonwebtoken.Claims getRefreshClaims(@NonNull @NonNull String token)
      Extracts claims from a refresh token.
      Parameters:
      token - the JWT token
      Returns:
      the extracted claims