1111import java .net .URLEncoder ;
1212import java .nio .charset .StandardCharsets ;
1313import lombok .AllArgsConstructor ;
14+ import lombok .extern .slf4j .Slf4j ;
1415import org .springframework .http .HttpStatus ;
1516import org .springframework .security .core .Authentication ;
1617import org .springframework .security .web .authentication .AuthenticationSuccessHandler ;
1920import java .util .Map ;
2021
2122@ AllArgsConstructor
23+ @ Slf4j
2224public 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