Skip to content

Commit 0606ff1

Browse files
committed
Merge branch '7.0.x'
2 parents a80447c + 671a53e commit 0606ff1

File tree

2 files changed

+15
-2
lines changed

2 files changed

+15
-2
lines changed

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

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,9 +113,14 @@ protected String determineTargetUrl(HttpServletRequest request, HttpServletRespo
113113
trace("Using url %s from request parameter %s", targetUrlParameterValue, this.targetUrlParameter);
114114
return targetUrlParameterValue;
115115
}
116+
117+
String refererHeader = request.getHeader("Referer");
118+
if (!StringUtils.hasText(refererHeader)) {
119+
return this.defaultTargetUrl;
120+
}
116121
if (this.useReferer) {
117-
trace("Using url %s from Referer header", request.getHeader("Referer"));
118-
return request.getHeader("Referer");
122+
trace("Using url %s from Referer header", refererHeader);
123+
return refererHeader;
119124
}
120125
return this.defaultTargetUrl;
121126
}

web/src/test/java/org/springframework/security/web/authentication/AbstractAuthenticationTargetUrlRequestHandlerTests.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,4 +114,12 @@ void setRedirectStrategyWhenGivenNullThenThrowsException() {
114114
assertThatIllegalArgumentException().isThrownBy(() -> this.handler.setRedirectStrategy(null));
115115
}
116116

117+
// gh-18805
118+
@Test
119+
void returnDefaultUrlIfUseRefererIsTrueAndRefererHeaderIsEmpty() {
120+
this.handler.setUseReferer(true);
121+
this.request.addHeader("Referer", "");
122+
assertThat(this.handler.determineTargetUrl(this.request, this.response)).isEqualTo(DEFAULT_TARGET_URL);
123+
}
124+
117125
}

0 commit comments

Comments
 (0)