Class JwtService

java.lang.Object
com.order.api01authgateway.security.JwtService

@Service public class JwtService extends Object
Service component responsible for handling JWT (JSON Web Token) lifecycle management.

This service provides capabilities for generating tokens, extracting claims, and validating tokens against UserDetails. It uses the HS256 algorithm for signing tokens.

See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    <T> T
    extractClaim(String token, Function<io.jsonwebtoken.Claims,T> claimsResolver)
    Extracts a specific claim from the JWT using the provided resolver function.
    Extracts the subject (username) from the provided JWT.
    generateToken(Map<String,Object> extraClaims, org.springframework.security.core.userdetails.UserDetails userDetails)
    Generates a new JWT including extra claims for the specified UserDetails.
    generateToken(org.springframework.security.core.userdetails.UserDetails userDetails)
    Generates a new JWT for the specified UserDetails using default configuration.
    long
    Retrieves the configured JWT expiration duration in milliseconds.
    boolean
    isTokenValid(String token, org.springframework.security.core.userdetails.UserDetails userDetails)
    Validates the provided JWT against the UserDetails.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • JwtService

      public JwtService()
  • Method Details

    • extractUsername

      public String extractUsername(String token)
      Extracts the subject (username) from the provided JWT.
      Parameters:
      token - The JWT string to parse.
      Returns:
      The username contained within the token subject.
    • extractClaim

      public <T> T extractClaim(String token, Function<io.jsonwebtoken.Claims,T> claimsResolver)
      Extracts a specific claim from the JWT using the provided resolver function.
      Type Parameters:
      T - The type of the claim.
      Parameters:
      token - The JWT string to parse.
      claimsResolver - Function to resolve the desired claim.
      Returns:
      The resolved claim value.
    • generateToken

      public String generateToken(org.springframework.security.core.userdetails.UserDetails userDetails)
      Generates a new JWT for the specified UserDetails using default configuration.
      Parameters:
      userDetails - The user details to generate the token for.
      Returns:
      A signed JWT string.
    • generateToken

      public String generateToken(Map<String,Object> extraClaims, org.springframework.security.core.userdetails.UserDetails userDetails)
      Generates a new JWT including extra claims for the specified UserDetails.
      Parameters:
      extraClaims - Additional claims to include in the token payload.
      userDetails - The user details to generate the token for.
      Returns:
      A signed JWT string.
    • getExpirationTime

      public long getExpirationTime()
      Retrieves the configured JWT expiration duration in milliseconds.
      Returns:
      The expiration duration.
    • isTokenValid

      public boolean isTokenValid(String token, org.springframework.security.core.userdetails.UserDetails userDetails)
      Validates the provided JWT against the UserDetails.
      Parameters:
      token - The JWT to validate.
      userDetails - The UserDetails to match the token subject against.
      Returns:
      true if the token is valid and not expired, false otherwise.