diff --git a/src/main/java/com/psg/dlsysinfo/dl_sysinfo_server/controller/AuthController.java b/src/main/java/com/psg/dlsysinfo/dl_sysinfo_server/controller/AuthController.java index 648ae63..58eef9d 100644 --- a/src/main/java/com/psg/dlsysinfo/dl_sysinfo_server/controller/AuthController.java +++ b/src/main/java/com/psg/dlsysinfo/dl_sysinfo_server/controller/AuthController.java @@ -163,30 +163,35 @@ public class AuthController { } } @PostMapping("/refresh") - public ResponseEntity refreshToken(HttpServletRequest request, HttpServletResponse response) { - String token = tokenResolver.resolveToken(request); + public ResponseEntity refreshToken(HttpServletRequest request, HttpServletResponse response) { + String token = tokenResolver.resolveToken(request); - if (token != null && jwtUtil.validateToken(token)) { - String username = jwtUtil.extractUsername(token); - // Generate new token with extended expiry - String newToken = jwtUtil.generateToken(...); // same params as login + if (token != null && jwtUtil.validateToken(token)) { + String username = jwtUtil.extractUsername(token); + String displayName = jwtUtil.extractDisplayName(token); + String clientIdentifier = jwtUtil.extractClientIdentifier(token); + Long userId = jwtUtil.extractUserId(token); + List roles = jwtUtil.extractRoles(token); - // Set new cookie - ResponseCookie cookie = ResponseCookie.from("authToken", newToken) - .httpOnly(true) - .secure(true) - .path("/") - .sameSite("None") - .maxAge(60 * 60) - .domain(resolveCookieDomain(request)) - .build(); + // Generate new token with extended expiry + String newToken = jwtUtil.generateToken(username, displayName, clientIdentifier, userId, roles); - response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString()); - return ResponseEntity.ok(Map.of("message", "Token refreshed")); - } + // Set new cookie + ResponseCookie cookie = ResponseCookie.from("authToken", newToken) + .httpOnly(true) + .secure(true) + .path("/") + .sameSite("None") + .maxAge(60 * 60) + .domain(resolveCookieDomain(request)) + .build(); - return ResponseEntity.status(401).body(Map.of("error", "Invalid token")); - } + response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString()); + return ResponseEntity.ok(Map.of("message", "Token refreshed")); + } + + return ResponseEntity.status(401).body(Map.of("error", "Invalid token")); + } }