Changeset 335fee0


Ignore:
Timestamp:
01/26/26 12:40:55 (6 months ago)
Author:
Filip Gavrilovski <filipgavrilovski28@…>
Branches:
main
Children:
ecd0016
Parents:
62acea2
Message:

replace hardcoded auth constants with config

Location:
finkwave/src/main
Files:
1 added
1 deleted
6 edited

Legend:

Unmodified
Added
Removed
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/controller/AuthController.java

    r62acea2 r335fee0  
    33import java.util.Map;
    44
     5import com.ukim.finki.develop.finkwave.config.AuthProperties;
    56import org.springframework.http.HttpStatus;
    67import org.springframework.http.ResponseEntity;
     
    2829@RequiredArgsConstructor
    2930public class AuthController {
    30     // todo: read from config
    31     private final int accessTokenMaxAge = 900;
     31    private final AuthProperties authProperties;
    3232    private final AuthService authService;
    3333
     
    4040            return ResponseEntity.ok(Map.of(
    4141                    "user", userResponseDto,
    42                     "tokenExpiresIn", accessTokenMaxAge
     42                    "tokenExpiresIn", authProperties.getAccessTokenMaxAge()
    4343            ));
    4444        } catch (Exception e){
     
    5757            return ResponseEntity.ok(Map.of(
    5858                    "user", userResponseDto,
    59                     "tokenExpiresIn", accessTokenMaxAge
     59                    "tokenExpiresIn", authProperties.getAccessTokenMaxAge()
    6060                    )
    6161            );
     
    7777        authService.refreshAccessTokenAndAddCookie(httpServletResponse, refreshToken);
    7878        return ResponseEntity.ok(Map.of(
    79                 "tokenExpiresIn", accessTokenMaxAge
     79                "tokenExpiresIn", authProperties.getAccessTokenMaxAge()
    8080        ));
    8181    }
     
    102102        UserResponseDto userDto = authService.getUserDtoByUsername(username);
    103103        return ResponseEntity.ok(Map.of(
    104                 "tokenExpiresIn", accessTokenMaxAge,
     104                "tokenExpiresIn", authProperties.getAccessTokenMaxAge(),
    105105                "user", userDto
    106106        ));
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/AuthService.java

    r62acea2 r335fee0  
    11package com.ukim.finki.develop.finkwave.service;
    22
     3import com.ukim.finki.develop.finkwave.config.AuthProperties;
    34import com.ukim.finki.develop.finkwave.dto.LoginRequestDto;
    45import org.springframework.security.crypto.password.PasswordEncoder;
     
    2627    private final JwtService jwtService;
    2728    private final RefreshTokenService refreshTokenService;
    28     private final int accessTokenMaxAge = 900;
    29     private final int refreshTokenMaxAge = 10 * 24 * 60 * 60;
     29    private final AuthProperties authProperties;
    3030
    3131
     
    8181        accessCookie.setSecure(false);
    8282        accessCookie.setPath("/");
    83         accessCookie.setMaxAge(accessTokenMaxAge);
     83        accessCookie.setMaxAge(authProperties.getAccessTokenMaxAge());
    8484        response.addCookie(accessCookie);
    8585    }
     
    127127        refreshCookie.setSecure(false);
    128128        refreshCookie.setPath("/");
    129         refreshCookie.setMaxAge(refreshTokenMaxAge);
     129        refreshCookie.setMaxAge(authProperties.getRefreshTokenMaxAge());
    130130        response.addCookie(refreshCookie);
    131131
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/CustomUserDetailsService.java

    r62acea2 r335fee0  
    2222        User user = userRepository.findByUsername(username)
    2323                .orElseThrow(() -> new RuntimeException("user not found"));
    24 //        List<GrantedAuthority> authorities = List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole().name()));
     24        // todo: fix hardcoded role
     25        // List<GrantedAuthority> authorities = List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole().name()));
    2526        List<GrantedAuthority> authorities = List.of(new SimpleGrantedAuthority("ROLE_NONADMIN"));
    2627        return new org.springframework.security.core.userdetails.User(
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/JwtService.java

    r62acea2 r335fee0  
    11package com.ukim.finki.develop.finkwave.service;
    22
     3import com.ukim.finki.develop.finkwave.config.AuthProperties;
    34import io.jsonwebtoken.Claims;
    45import io.jsonwebtoken.Jwts;
    56import io.jsonwebtoken.security.Keys;
     7import lombok.RequiredArgsConstructor;
     8import org.springframework.beans.factory.annotation.Value;
    69import org.springframework.stereotype.Service;
    710
     
    1114
    1215@Service
     16@RequiredArgsConstructor
    1317public class JwtService {
    14     // todo: read from config
    15     private final int accessTokenMaxAge = 900; // 900s - 15min
    16     // todo: replace hardcoded secret
    17     private final String secretKey = "very-really-extremely-secret-key-123";
     18    private final AuthProperties authProperties;
    1819
    1920    public String generateToken(String username, String role){
    20         SecretKey key = Keys.hmacShaKeyFor(secretKey.getBytes(StandardCharsets.UTF_8));
     21        SecretKey key = Keys.hmacShaKeyFor(authProperties.getSecret().getBytes(StandardCharsets.UTF_8));
    2122        return Jwts.builder()
    2223                .setSubject(username)
    2324                .claim("role", "ROLE_" + role)
    24                 .setExpiration(new Date(System.currentTimeMillis() + (long) accessTokenMaxAge * 1000))
     25                .setExpiration(new Date(System.currentTimeMillis() + (long) authProperties.getAccessTokenMaxAge() * 1000))
    2526                .signWith(key)
    2627                .compact();
     
    2829
    2930    public Claims extractClaims(String token){
    30         SecretKey key = Keys.hmacShaKeyFor(secretKey.getBytes(StandardCharsets.UTF_8));
     31        SecretKey key = Keys.hmacShaKeyFor(authProperties.getSecret().getBytes(StandardCharsets.UTF_8));
    3132        return Jwts.parserBuilder()
    3233                .setSigningKey(key)
  • finkwave/src/main/java/com/ukim/finki/develop/finkwave/service/RefreshTokenService.java

    r62acea2 r335fee0  
    11package com.ukim.finki.develop.finkwave.service;
    22
     3import com.ukim.finki.develop.finkwave.config.AuthProperties;
    34import com.ukim.finki.develop.finkwave.model.RefreshToken;
    45import com.ukim.finki.develop.finkwave.model.User;
     
    1617public class RefreshTokenService {
    1718    private final RefreshTokenRepository refreshTokenRepository;
     19    private final AuthProperties authProperties;
    1820
    1921    public RefreshToken createRefreshToken(User user){
     
    2123        refreshToken.setUser(user);
    2224        refreshToken.setToken(UUID.randomUUID().toString());
    23         refreshToken.setExpiresAt(Instant.now().plus(14, ChronoUnit.DAYS));
     25        refreshToken.setExpiresAt(Instant.now().plus(authProperties.getRefreshTokenMaxAge(), ChronoUnit.SECONDS));
    2426        return refreshTokenRepository.save(refreshToken);
    2527    }
  • finkwave/src/main/resources/application-example.properties

    r62acea2 r335fee0  
    55spring.datasource.password=x
    66spring.datasource.hikari.schema=x
     7
     8auth.secret=x
     9
     10# 15 minutes
     11auth.access-token-max-age=900
     12
     13# 10 days = 10 * 24 * 60 * 60
     14auth.refresh-token-max-age=864000
Note: See TracChangeset for help on using the changeset viewer.