| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- package com.example.projectback.security.jwt;
- import io.jsonwebtoken.*;
- import org.springframework.beans.factory.annotation.Value;
- import org.springframework.security.core.Authentication;
- import org.springframework.stereotype.Component;
- import com.example.projectback.security.services.UserPrinciple;
- import java.util.Date;
- @Component
- public class JwtProvider {
- @Value("${com.example.project-back.jwtSecret}")
- private String jwtSecret;
- @Value("${com.example.project-back.jwtExpiration}")
- private int jwtExpiration;
- public String generateJwtToken(Authentication authentication) {
- UserPrinciple userPrinciple = (UserPrinciple) authentication.getPrincipal();
- return Jwts.builder()
- .setSubject(userPrinciple.getUsername())
- .setIssuedAt(new Date())
- .setExpiration(new Date((new Date()).getTime() + jwtExpiration* 1000L))
- .signWith(SignatureAlgorithm.HS512, jwtSecret)
- .compact();
- }
- public boolean validateJwtToken(String authToken) {
- try {
- Jwts.parser().setSigningKey(jwtSecret).parseClaimsJws(authToken);
- return true;
- } catch (SignatureException e) {
- System.out.println("Invalid JWT signature -> Message: {} " + e);
- } catch (MalformedJwtException e) {
- System.out.println("Invalid JWT token -> Message: {}" + e);
- } catch (ExpiredJwtException e) {
- System.out.println("Expired JWT token -> Message: {}" + e);
- } catch (UnsupportedJwtException e) {
- System.out.println("Unsupported JWT token -> Message: {}" + e);
- } catch (IllegalArgumentException e) {
- System.out.println("JWT claims string is empty -> Message: {}" + e);
- }
- return false;
- }
- public String getUserNameFromJwtToken(String token) {
- return Jwts.parser()
- .setSigningKey(jwtSecret)
- .parseClaimsJws(token)
- .getBody().getSubject();
- }
- }
|