Skip to content

Commit 36c3387

Browse files
authored
Enhance OAuth2SuccessHandler with logging and error handling
Added logging for OAuth2 success handling and improved error handling.
1 parent aa287fd commit 36c3387

File tree

1 file changed

+28
-18
lines changed

1 file changed

+28
-18
lines changed

src/main/java/com/blockcloud/exception/handler/OAuth2SuccessHandler.java

Lines changed: 28 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
import java.net.URLEncoder;
1212
import java.nio.charset.StandardCharsets;
1313
import lombok.AllArgsConstructor;
14+
import lombok.extern.slf4j.Slf4j;
1415
import org.springframework.http.HttpStatus;
1516
import org.springframework.security.core.Authentication;
1617
import org.springframework.security.web.authentication.AuthenticationSuccessHandler;
@@ -19,6 +20,7 @@
1920
import java.util.Map;
2021

2122
@AllArgsConstructor
23+
@Slf4j
2224
public class OAuth2SuccessHandler implements AuthenticationSuccessHandler {
2325

2426
private final JWTUtil jwtUtil;
@@ -29,39 +31,47 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
2931

3032
CustomOAuth2User customOAuth2User = (CustomOAuth2User) authentication.getPrincipal();
3133
User user = customOAuth2User.getUser();
32-
ObjectMapper objectMapper = new ObjectMapper();
34+
ObjectMapper objectMapper = new ObjectMapper();
3335

34-
try {
35-
String accessToken = jwtUtil.createJwt("access", user.getEmail(), String.valueOf(user.getRole()), 30 * 60 * 1000L);
36-
String refreshToken = jwtUtil.createJwt("refresh", user.getEmail(), String.valueOf(user.getRole()), 24 * 60 * 60 * 1000L);
36+
try {
37+
log.info("Starting OAuth2 Success Handling for user: {}", user.getEmail());
38+
39+
String accessToken = jwtUtil.createJwt("access", user.getEmail(), String.valueOf(user.getRole()), 30 * 60 * 1000L);
40+
String refreshToken = jwtUtil.createJwt("refresh", user.getEmail(), String.valueOf(user.getRole()), 24 * 60 * 60 * 1000L);
3741

3842
Cookie refreshCookie = cookieService.createCookie("refresh", refreshToken, 24 * 60 * 60 * 1000L);
3943
response.addCookie(refreshCookie);
44+
log.debug("Access Token created. Refresh Token cookie added.");
4045

4146
response.setStatus(HttpStatus.OK.value());
4247
response.setContentType("application/json;charset=UTF-8");
4348

4449
String userJson = objectMapper.writeValueAsString(
45-
Map.of(
46-
"message", "Login successful",
47-
"email", user.getEmail(),
48-
"imgUrl", user.getImgUrl(),
49-
"userName", user.getUsername(),
50-
"role", user.getRole()
51-
)
50+
Map.of(
51+
"message", "Login successful",
52+
"email", user.getEmail(),
53+
"imgUrl", user.getImgUrl(),
54+
"userName", user.getUsername(),
55+
"role", user.getRole()
56+
)
5257
);
53-
String redirectUrl = "https://blockcloud.dev/oauth2/callback"
54-
+ "?access=" + URLEncoder.encode(accessToken, StandardCharsets.UTF_8)
55-
+ "&user=" + URLEncoder.encode(userJson, StandardCharsets.UTF_8);
5658

57-
response.sendRedirect(redirectUrl);
58-
} catch (IOException e) {
59-
e.printStackTrace();
59+
String redirectUrl = "https://blockcloud.dev/oauth2/callback"
60+
+ "?access=" + URLEncoder.encode(accessToken, StandardCharsets.UTF_8)
61+
+ "&user=" + URLEncoder.encode(userJson, StandardCharsets.UTF_8);
62+
63+
log.info("Redirecting successfully to: {}", redirectUrl);
64+
response.sendRedirect(redirectUrl);
65+
66+
} catch (Exception e) {
67+
68+
log.error("Critical error occurred in OAuth2SuccessHandler while generating tokens or redirecting.", e);
69+
6070
response.setStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
6171
response.setContentType("application/json;charset=UTF-8");
6272

6373
try (PrintWriter writer = response.getWriter()) {
64-
writer.write("{\"message\": \"An error occurred during authentication\"}");
74+
writer.write("{\"message\": \"An error occurred during authentication success handling\"}");
6575
writer.flush();
6676
}
6777
}

0 commit comments

Comments
 (0)