/
Hipahopa808
/
SpringCourse
Обзор
Документация
Войти
/
Hipahopa808
/
SpringCourse
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
JWTApp/src/main/java/ru/alishev/springcourse/FirstSecurityApp/security/JWTUtil.java
44 строки
1 KB
Neil Alishev
Add JWT App
20 фев 2022, 14:54
20 фев 2022, 14:54
3ad9194
Код
Авторство
О чём код?
package ru.alishev.springcourse.FirstSecurityApp.security; import com.auth0.jwt.JWT; import com.auth0.jwt.JWTVerifier; import com.auth0.jwt.algorithms.Algorithm; import com.auth0.jwt.exceptions.JWTVerificationException; import com.auth0.jwt.interfaces.DecodedJWT; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.time.ZonedDateTime; import java.util.Date; /** * @author Neil Alishev */ @Component public class JWTUtil { @Value("${jwt_secret}") private String secret; public String generateToken(String username) { Date expirationDate = Date.from(ZonedDateTime.now().plusMinutes(60).toInstant()); return JWT.create() .withSubject("User details") .withClaim("username", username) .withIssuedAt(new Date()) .withIssuer("alishev") .withExpiresAt(expirationDate) .sign(Algorithm.HMAC256(secret)); } public String validateTokenAndRetrieveClaim(String token) throws JWTVerificationException { JWTVerifier verifier = JWT.require(Algorithm.HMAC256(secret)) .withSubject("User details") .withIssuer("alishev") .build(); DecodedJWT jwt = verifier.verify(token); return jwt.getClaim("username").asString(); } }