diff --git a/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java b/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java
index be07f6cd78..76474b1288 100644
--- a/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java
+++ b/web/src/main/java/org/springframework/security/web/DefaultRedirectStrategy.java
@@ -57,9 +57,9 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
response.sendRedirect(redirectUrl);
}
- private String calculateRedirectUrl(String contextPath, String url) {
+ protected String calculateRedirectUrl(String contextPath, String url) {
if (!UrlUtils.isAbsoluteUrl(url)) {
- if (contextRelative) {
+ if (isContextRelative()) {
return url;
}
else {
@@ -69,7 +69,7 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
// Full URL, including http(s)://
- if (!contextRelative) {
+ if (!isContextRelative()) {
return url;
}
@@ -93,4 +93,11 @@ public class DefaultRedirectStrategy implements RedirectStrategy {
this.contextRelative = useRelativeContext;
}
+ /**
+ * Returns true, if the redirection URL should be calculated
+ * minus the protocol and context path (defaults to false).
+ */
+ protected boolean isContextRelative() {
+ return contextRelative;
+ }
}