Skip to content

Commit 879770a

Browse files
committed
Polish AbstractAuthenticationTargetUrlHandler
Issue gh-12344
1 parent 6b8a778 commit 879770a

File tree

1 file changed

+20
-9
lines changed

1 file changed

+20
-9
lines changed

web/src/main/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandler.java

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2002-2019 the original author or authors.
2+
* Copyright 2002-2023 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -107,18 +107,29 @@ protected String determineTargetUrl(HttpServletRequest request, HttpServletRespo
107107
if (isAlwaysUseDefaultTargetUrl()) {
108108
return this.defaultTargetUrl;
109109
}
110-
// with or without value the targetUrlParameter take precedence
111-
if (StringUtils.hasText(this.targetUrlParameter)
112-
&& StringUtils.hasText(request.getParameter(this.targetUrlParameter))) {
113-
trace("Using url %s from request parameter %s", request.getParameter(this.targetUrlParameter),
114-
this.targetUrlParameter);
115-
return request.getParameter(this.targetUrlParameter);
110+
String targetUrlParameterValue = getTargetUrlParameterValue(request);
111+
if (StringUtils.hasText(targetUrlParameterValue)) {
112+
trace("Using url %s from request parameter %s", targetUrlParameterValue, this.targetUrlParameter);
113+
return targetUrlParameterValue;
116114
}
117-
if (this.targetUrlParameter == null && this.useReferer) {
115+
if (this.useReferer) {
118116
trace("Using url %s from Referer header", request.getHeader("Referer"));
119117
return request.getHeader("Referer");
120118
}
121-
trace("Using default url %s", this.defaultTargetUrl);
119+
return this.defaultTargetUrl;
120+
}
121+
122+
private String getTargetUrlParameterValue(HttpServletRequest request) {
123+
if (this.targetUrlParameter == null) {
124+
return null;
125+
}
126+
String value = request.getParameter(this.targetUrlParameter);
127+
if (value == null) {
128+
return null;
129+
}
130+
if (StringUtils.hasText(value)) {
131+
return value;
132+
}
122133
return this.defaultTargetUrl;
123134
}
124135

0 commit comments

Comments
 (0)