@@ -44,7 +44,19 @@ public class LoginSuccessService extends SavedRequestAwareAuthenticationSuccessH
4444 public void onAuthenticationSuccess (HttpServletRequest request , HttpServletResponse response , Authentication authentication ) throws IOException ,
4545 ServletException {
4646 log .debug ("LoginSuccessService.onAuthenticationSuccess()" );
47- log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "called with authentiation: {}" , authentication );
47+ log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "called with request: {}" , request );
48+ log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "called with authentication: {}" , authentication );
49+
50+ // Enhanced logging to check request attributes
51+ log .debug ("Request URI: {}" , request .getRequestURI ());
52+ log .debug ("Request URL: {}" , request .getRequestURL ());
53+ log .debug ("Request query string: {}" , request .getQueryString ());
54+ log .debug ("Session ID: {}" , request .getSession ().getId ());
55+
56+ // Log saved request if present
57+ Object savedRequest = request .getSession ().getAttribute ("SPRING_SECURITY_SAVED_REQUEST" );
58+ log .debug ("Saved request in session: {}" , savedRequest );
59+
4860 log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "targetUrl: {}" , super .determineTargetUrl (request , response ));
4961
5062 User user = null ;
@@ -59,22 +71,53 @@ public void onAuthenticationSuccess(HttpServletRequest request, HttpServletRespo
5971 }
6072 }
6173
74+ // Create audit event
6275 AuditEvent loginAuditEvent =
6376 AuditEvent .builder ().source (this ).user (user ).sessionId (request .getSession ().getId ()).ipAddress (UserUtils .getClientIP (request ))
6477 .userAgent (request .getHeader ("User-Agent" )).action ("Login" ).actionStatus ("Success" ).message ("Success" ).build ();
6578
66- eventPublisher .publishEvent (loginAuditEvent );
79+ // Publish audit event in a try-catch to prevent redirection issues
80+ try {
81+ eventPublisher .publishEvent (loginAuditEvent );
82+ } catch (Exception e ) {
83+ log .error ("Error publishing login audit event" , e );
84+ // Continue with the login flow even if audit logging fails
85+ }
6786
87+ // Get and set the target URL with enhanced logging
6888 String targetUrl = super .determineTargetUrl (request , response );
89+ log .debug ("Initial targetUrl from super.determineTargetUrl: {}" , targetUrl );
90+
6991 if (StringUtils .isEmptyOrWhitespace (targetUrl ) || StringUtils .equals (targetUrl , "/" )) {
7092 targetUrl = loginSuccessUri ;
93+ log .debug ("Using configured loginSuccessUri: {}" , loginSuccessUri );
7194 this .setDefaultTargetUrl (targetUrl );
72-
7395 log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "set defaultTargetUrl to: {}" , this .getDefaultTargetUrl ());
74- log .debug ("LoginSuccessService.onAuthenticationSuccess:" + "defaultTargetParam: {}" , this .getTargetUrlParameter ());
96+ } else {
97+ log .debug ("Using existing targetUrl: {}" , targetUrl );
7598 }
7699
100+ // Set the alwaysUseDefaultTargetUrl to ensure our target URL is always used
101+ this .setAlwaysUseDefaultTargetUrl (true );
102+ log .debug ("AlwaysUseDefaultTargetUrl set to: {}" , this .isAlwaysUseDefaultTargetUrl ());
103+
104+ // Check if there's a redirect URL in the request parameters (common in OAuth2 flows)
105+ String continueParam = request .getParameter ("continue" );
106+ if (continueParam != null ) {
107+ log .debug ("Found 'continue' parameter in request: {}" , continueParam );
108+ }
109+
110+ // Extra logging to track redirection
111+ log .debug ("LoginSuccessService.onAuthenticationSuccess: Proceeding with redirection to {}" , this .getDefaultTargetUrl ());
112+
113+ // Log the SavedRequest state
114+ log .debug ("SavedRequest state before calling super.onAuthenticationSuccess: {}" ,
115+ request .getSession ().getAttribute ("SPRING_SECURITY_SAVED_REQUEST" ));
116+
77117 super .onAuthenticationSuccess (request , response , authentication );
118+
119+ // This won't execute if the super method redirects, but might help with debugging
120+ log .debug ("After super.onAuthenticationSuccess - if you see this, no redirect happened" );
78121 }
79122
80123}
0 commit comments