Class JwtProvider

java.lang.Object
ru.averkiev.greenchat_auth.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)
     
  • 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
    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)
  • Method Details

    • generateAccessToken

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

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

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

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

      public boolean validateToken(@NotNull @NotNull String token, @NotNull @NotNull Key secret) throws io.jsonwebtoken.ExpiredJwtException, io.jsonwebtoken.UnsupportedJwtException, io.jsonwebtoken.MalformedJwtException, io.jsonwebtoken.security.SignatureException, AuthException
      Проверяет и возвращает результат проверки токена.
      Parameters:
      token - переданный токен, который необходимо проверить.
      secret - секретный ключ для разбора токена и проверки его целостности.
      Returns:
      возвращает результат проверки токена.
      Throws:
      io.jsonwebtoken.ExpiredJwtException - выбрасывается если токен недействителен.
      io.jsonwebtoken.UnsupportedJwtException - выбрасывается если токен не поддерживается.
      io.jsonwebtoken.MalformedJwtException - выбрасывается если токен некорректен.
      io.jsonwebtoken.security.SignatureException - выбрасывается если секретный ключ недействителен.
      AuthException
    • 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 переданного токена.