| 
1 | 1 | /*  | 
2 |  | - * Copyright 2002-2016 the original author or authors.  | 
 | 2 | + * Copyright 2002-2025 the original author or authors.  | 
3 | 3 |  *  | 
4 | 4 |  * Licensed under the Apache License, Version 2.0 (the "License");  | 
5 | 5 |  * you may not use this file except in compliance with the License.  | 
 | 
16 | 16 | 
 
  | 
17 | 17 | package org.springframework.security.web.authentication;  | 
18 | 18 | 
 
  | 
19 |  | -import java.io.IOException;  | 
20 |  | - | 
21 |  | -import jakarta.servlet.ServletException;  | 
22 | 19 | import jakarta.servlet.http.HttpServletRequest;  | 
23 | 20 | import jakarta.servlet.http.HttpServletResponse;  | 
24 | 21 | import org.apache.commons.logging.Log;  | 
25 | 22 | import org.apache.commons.logging.LogFactory;  | 
26 | 23 | 
 
  | 
27 |  | -import org.springframework.security.core.Authentication;  | 
28 | 24 | import org.springframework.security.web.access.ExceptionTranslationFilter;  | 
29 | 25 | import org.springframework.security.web.savedrequest.HttpSessionRequestCache;  | 
30 | 26 | import org.springframework.security.web.savedrequest.RequestCache;  | 
@@ -70,24 +66,21 @@ public class SavedRequestAwareAuthenticationSuccessHandler extends SimpleUrlAuth  | 
70 | 66 | 	private RequestCache requestCache = new HttpSessionRequestCache();  | 
71 | 67 | 
 
  | 
72 | 68 | 	@Override  | 
73 |  | -	public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response,  | 
74 |  | -			Authentication authentication) throws ServletException, IOException {  | 
 | 69 | +	protected String determineTargetUrl(HttpServletRequest request, HttpServletResponse response) {  | 
75 | 70 | 		SavedRequest savedRequest = this.requestCache.getRequest(request, response);  | 
76 | 71 | 		if (savedRequest == null) {  | 
77 |  | -			super.onAuthenticationSuccess(request, response, authentication);  | 
78 |  | -			return;  | 
 | 72 | +			return super.determineTargetUrl(request, response);  | 
79 | 73 | 		}  | 
 | 74 | + | 
80 | 75 | 		String targetUrlParameter = getTargetUrlParameter();  | 
81 | 76 | 		if (isAlwaysUseDefaultTargetUrl()  | 
82 | 77 | 				|| (targetUrlParameter != null && StringUtils.hasText(request.getParameter(targetUrlParameter)))) {  | 
83 | 78 | 			this.requestCache.removeRequest(request, response);  | 
84 |  | -			super.onAuthenticationSuccess(request, response, authentication);  | 
85 |  | -			return;  | 
 | 79 | +			return super.determineTargetUrl(request, response);  | 
86 | 80 | 		}  | 
87 |  | -		clearAuthenticationAttributes(request);  | 
 | 81 | + | 
88 | 82 | 		// Use the DefaultSavedRequest URL  | 
89 |  | -		String targetUrl = savedRequest.getRedirectUrl();  | 
90 |  | -		getRedirectStrategy().sendRedirect(request, response, targetUrl);  | 
 | 83 | +		return savedRequest.getRedirectUrl();  | 
91 | 84 | 	}  | 
92 | 85 | 
 
  | 
93 | 86 | 	public void setRequestCache(RequestCache requestCache) {  | 
 | 
0 commit comments