Class JwtProvider
java.lang.Object
ru.averkiev.socialmediaapi.security.JwtProvider
Класс предоставляет функциональность для создания, проверки и валидации JWT токенов.
- Author:
- mrGreenNV
-
Constructor Summary
ConstructorsConstructorDescriptionJwtProvider
(String jwtAccessSecret, String jwtRefreshSecret, Long expirationAccessTokenInMinutes, Long expirationRefreshTokenInDays) Позволяет создать объект JwtProvider с заданными параметрами -
Method Summary
Modifier and TypeMethodDescriptiongenerateAccessToken
(@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
isAccessTokenExpired
(String accessToken) Извлекает из Claims время окончания токена и сравнивает с текущим временем.boolean
isRefreshTokenExpired
(String refreshToken) Извлекает из Claims время окончания токена и сравнивает с текущим временем.boolean
validateAccessToken
(@NotNull String accessToken) Проверяет и возвращает результат проверки токена доступа.boolean
validateRefreshToken
(@NotNull String refreshToken) Проверяет и возвращает результат проверки токена обновления.boolean
validateToken
(@NotNull String token, @NotNull Key secret) Проверяет и возвращает результат проверки токена.
-
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
Генерирует и возвращает токен доступа на основе переданного объекта JwtUser. Метод создаёт токен с указанным субъектом (именем пользователя), сроком действия и подписывает его с использованием секретного ключа jwtAccessSecret.- Parameters:
jwtUser
- передаваемый объект, для которого генерируется токен доступа.- Returns:
- строка, содержащая токен доступа.
-
generateRefreshToken
Генерирует и возвращает токен обновления на основе переданного объекта 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
Проверяет и возвращает результат проверки токена доступа.- Parameters:
accessToken
- передаваемый токен доступа, который необходимо проверить.- Returns:
- возвращает результат проверки токена доступа.
-
validateRefreshToken
Проверяет и возвращает результат проверки токена обновления.- Parameters:
refreshToken
- передаваемый токен доступа, который необходимо проверить.- Returns:
- возвращает результат проверки токена обновления.
-
getAccessClaims
Извлекает и возвращает объект Claims из разобранного access токена, с помощью вызова метода getClaims.- Parameters:
AccessToken
- - токен, из которого извлекаются Claims.- Returns:
- объект Claims, содержащий body переданного токена.
-
getRefreshClaims
Извлекает и возвращает объект Claims из разобранного refresh токена, с помощью вызова метода getClaims.- Parameters:
refreshToken
- - токен, из которого извлекаются Claims.- Returns:
- объект Claims, содержащий body переданного токена.
-
isAccessTokenExpired
Извлекает из Claims время окончания токена и сравнивает с текущим временем.- Parameters:
accessToken
- access токен.- Returns:
- true если токен просуществовал больше половины отведенного времени, иначе - false.
-
isRefreshTokenExpired
Извлекает из Claims время окончания токена и сравнивает с текущим временем.- Parameters:
refreshToken
- access токен.- Returns:
- true если токен просуществовал больше половины отведенного времени, иначе - false.
-