Class JwtProvider

java.lang.Object
ru.averkiev.socialmediaapi.security.JwtProvider

@Component public class JwtProvider extends Object
Класс предоставляет функциональность для создания, проверки и валидации JWT токенов.
Author:
mrGreenNV
  • Constructor Summary

    Constructors
    Constructor
    Description
    JwtProvider(String jwtAccessSecret, String jwtRefreshSecret, Long expirationAccessTokenInMinutes, Long expirationRefreshTokenInDays)
    Позволяет создать объект JwtProvider с заданными параметрами
  • Method Summary

    Modifier and Type
    Method
    Description
    generateAccessToken(@NotNull JwtUser jwtUser)
    Генерирует и возвращает токен доступа на основе переданного объекта JwtUser.
    generateRefreshToken(@NotNull JwtUser jwtUser)
    Генерирует и возвращает токен обновления на основе переданного объекта JwtUser.
    io.jsonwebtoken.Claims
    getAccessClaims(@NotNull String AccessToken)
    Извлекает и возвращает объект Claims из разобранного access токена, с помощью вызова метода getClaims.
    io.jsonwebtoken.Claims
    getRefreshClaims(@NotNull String refreshToken)
    Извлекает и возвращает объект Claims из разобранного refresh токена, с помощью вызова метода getClaims.
    boolean
    Извлекает из Claims время окончания токена и сравнивает с текущим временем.
    boolean
    Извлекает из Claims время окончания токена и сравнивает с текущим временем.
    boolean
    validateAccessToken(@NotNull String accessToken)
    Проверяет и возвращает результат проверки токена доступа.
    boolean
    validateRefreshToken(@NotNull String refreshToken)
    Проверяет и возвращает результат проверки токена обновления.
    boolean
    validateToken(@NotNull String token, @NotNull Key secret)
    Проверяет и возвращает результат проверки токена.

    Methods inherited from class java.lang.Object

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

    • JwtProvider

      @Autowired public JwtProvider(@Value("${jwt.secret.access}") String jwtAccessSecret, @Value("${jwt.secret.refresh}") String jwtRefreshSecret, @Value("${jwt.expiration.access}") Long expirationAccessTokenInMinutes, @Value("${jwt.expiration.refresh}") Long expirationRefreshTokenInDays)
      Позволяет создать объект JwtProvider с заданными параметрами
      Parameters:
      jwtAccessSecret - секретный ключ для подписи токенов доступа.
      jwtRefreshSecret - секретный ключ для подписи токенов обновления.
      expirationAccessTokenInMinutes - срок действия access токена.
      expirationRefreshTokenInDays - срок действия refresh токена.
  • Method Details

    • generateAccessToken

      public String generateAccessToken(@NotNull @NotNull JwtUser jwtUser)
      Генерирует и возвращает токен доступа на основе переданного объекта JwtUser. Метод создаёт токен с указанным субъектом (именем пользователя), сроком действия и подписывает его с использованием секретного ключа jwtAccessSecret.
      Parameters:
      jwtUser - передаваемый объект, для которого генерируется токен доступа.
      Returns:
      строка, содержащая токен доступа.
    • generateRefreshToken

      public String generateRefreshToken(@NotNull @NotNull JwtUser jwtUser)
      Генерирует и возвращает токен обновления на основе переданного объекта JwtUser. Метод создаёт токен с указанным субъектом (именем пользователя), сроком действия и подписывает его с использованием секретного ключа jwtAccessSecret.
      Parameters:
      jwtUser - передаваемый объект, для которого генерируется токен обновления.
      Returns:
      строка, содержащая токен обновления.
    • validateToken

      public boolean validateToken(@NotNull @NotNull String token, @NotNull @NotNull Key secret) throws AuthException
      Проверяет и возвращает результат проверки токена.
      Parameters:
      token - переданный токен, который необходимо проверить.
      secret - секретный ключ для разбора токена и проверки его целостности.
      Returns:
      возвращает результат проверки токена.
      Throws:
      AuthException
    • validateAccessToken

      public boolean validateAccessToken(@NotNull @NotNull String accessToken)
      Проверяет и возвращает результат проверки токена доступа.
      Parameters:
      accessToken - передаваемый токен доступа, который необходимо проверить.
      Returns:
      возвращает результат проверки токена доступа.
    • validateRefreshToken

      public boolean validateRefreshToken(@NotNull @NotNull String refreshToken)
      Проверяет и возвращает результат проверки токена обновления.
      Parameters:
      refreshToken - передаваемый токен доступа, который необходимо проверить.
      Returns:
      возвращает результат проверки токена обновления.
    • getAccessClaims

      public io.jsonwebtoken.Claims getAccessClaims(@NotNull @NotNull String AccessToken)
      Извлекает и возвращает объект Claims из разобранного access токена, с помощью вызова метода getClaims.
      Parameters:
      AccessToken - - токен, из которого извлекаются Claims.
      Returns:
      объект Claims, содержащий body переданного токена.
    • getRefreshClaims

      public io.jsonwebtoken.Claims getRefreshClaims(@NotNull @NotNull String refreshToken)
      Извлекает и возвращает объект Claims из разобранного refresh токена, с помощью вызова метода getClaims.
      Parameters:
      refreshToken - - токен, из которого извлекаются Claims.
      Returns:
      объект Claims, содержащий body переданного токена.
    • isAccessTokenExpired

      public boolean isAccessTokenExpired(String accessToken)
      Извлекает из Claims время окончания токена и сравнивает с текущим временем.
      Parameters:
      accessToken - access токен.
      Returns:
      true если токен просуществовал больше половины отведенного времени, иначе - false.
    • isRefreshTokenExpired

      public boolean isRefreshTokenExpired(String refreshToken)
      Извлекает из Claims время окончания токена и сравнивает с текущим временем.
      Parameters:
      refreshToken - access токен.
      Returns:
      true если токен просуществовал больше половины отведенного времени, иначе - false.