Resolved refresh endpoint issues.
This commit is contained in:
@@ -163,30 +163,35 @@ public class AuthController {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
@PostMapping("/refresh")
|
@PostMapping("/refresh")
|
||||||
public ResponseEntity<?> refreshToken(HttpServletRequest request, HttpServletResponse response) {
|
public ResponseEntity<?> refreshToken(HttpServletRequest request, HttpServletResponse response) {
|
||||||
String token = tokenResolver.resolveToken(request);
|
String token = tokenResolver.resolveToken(request);
|
||||||
|
|
||||||
if (token != null && jwtUtil.validateToken(token)) {
|
if (token != null && jwtUtil.validateToken(token)) {
|
||||||
String username = jwtUtil.extractUsername(token);
|
String username = jwtUtil.extractUsername(token);
|
||||||
// Generate new token with extended expiry
|
String displayName = jwtUtil.extractDisplayName(token);
|
||||||
String newToken = jwtUtil.generateToken(...); // same params as login
|
String clientIdentifier = jwtUtil.extractClientIdentifier(token);
|
||||||
|
Long userId = jwtUtil.extractUserId(token);
|
||||||
|
List<String> roles = jwtUtil.extractRoles(token);
|
||||||
|
|
||||||
// Set new cookie
|
// Generate new token with extended expiry
|
||||||
ResponseCookie cookie = ResponseCookie.from("authToken", newToken)
|
String newToken = jwtUtil.generateToken(username, displayName, clientIdentifier, userId, roles);
|
||||||
.httpOnly(true)
|
|
||||||
.secure(true)
|
|
||||||
.path("/")
|
|
||||||
.sameSite("None")
|
|
||||||
.maxAge(60 * 60)
|
|
||||||
.domain(resolveCookieDomain(request))
|
|
||||||
.build();
|
|
||||||
|
|
||||||
response.addHeader(HttpHeaders.SET_COOKIE, cookie.toString());
|
// Set new cookie
|
||||||
return ResponseEntity.ok(Map.of("message", "Token refreshed"));
|
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"));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user