Ignore:
Timestamp:
01/19/25 23:18:37 (4 months ago)
Author:
Aleksandar Panovski <apano77@…>
Branches:
main
Children:
f5b256e
Parents:
db39d9e
Message:

Done with stupid timeslots

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/main/java/com/example/rezevirajmasa/demo/config/UserAuthProvider.java

    rdb39d9e r8ca35dc  
    77import com.example.rezevirajmasa.demo.dto.UserDto;
    88import com.example.rezevirajmasa.demo.service.UserService;
     9import io.jsonwebtoken.Claims;
     10import io.jsonwebtoken.Jwts;
    911import jakarta.annotation.PostConstruct;
    1012import lombok.RequiredArgsConstructor;
     
    1214import org.springframework.security.authentication.UsernamePasswordAuthenticationToken;
    1315import org.springframework.security.core.Authentication;
     16import org.springframework.security.core.userdetails.UserDetails;
    1417import org.springframework.stereotype.Component;
    1518
    16 import java.util.Base64;
    17 import java.util.Collections;
    18 import java.util.Date;
     19import java.util.*;
     20import java.util.function.Function;
    1921
    2022@RequiredArgsConstructor
     
    2931    protected void init() {
    3032        secretKey = Base64.getEncoder().encodeToString(secretKey.getBytes());
     33    }
     34
     35    public String generateToken(UserDetails userDetails){
     36        Map<String, Object> claims = new HashMap<>();
     37        return createToken(userDetails.getUsername());
    3138    }
    3239
     
    5057        return new UsernamePasswordAuthenticationToken(user, null, Collections.emptyList());
    5158    }
     59
     60    public String extractUsername(String token) {
     61        return extractClaim(token, Claims::getSubject);
     62    }
     63
     64    public Date extractExpiration(String token) {
     65        return extractClaim(token, Claims::getExpiration);
     66    }
     67
     68    public <T> T extractClaim(String token, Function<Claims, T> claimsResolver) {
     69        final Claims claims = extractAllClaims(token);
     70        return claimsResolver.apply(claims);
     71    }
     72
     73    private Claims extractAllClaims(String token) {
     74        return Jwts.parser().setSigningKey(secretKey).parseClaimsJws(token).getBody();
     75    }
     76
     77    private Boolean isTokenExpired(String token) {
     78        return extractExpiration(token).before(new Date());
     79    }
    5280}
Note: See TracChangeset for help on using the changeset viewer.