commit
c58e0dd113
|
@ -37,6 +37,7 @@ import org.springframework.security.web.PortResolver;
|
||||||
import org.springframework.security.web.util.UrlUtils;
|
import org.springframework.security.web.util.UrlUtils;
|
||||||
import org.springframework.util.Assert;
|
import org.springframework.util.Assert;
|
||||||
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.ObjectUtils;
|
||||||
|
import org.springframework.web.util.UriComponentsBuilder;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Represents central information from a {@code HttpServletRequest}.
|
* Represents central information from a {@code HttpServletRequest}.
|
||||||
|
@ -371,10 +372,8 @@ public class DefaultSavedRequest implements SavedRequest {
|
||||||
if (queryString == null || queryString.length() == 0) {
|
if (queryString == null || queryString.length() == 0) {
|
||||||
return matchingRequestParameterName;
|
return matchingRequestParameterName;
|
||||||
}
|
}
|
||||||
if (queryString.endsWith("&")) {
|
return UriComponentsBuilder.newInstance().query(queryString).replaceQueryParam(matchingRequestParameterName)
|
||||||
return queryString + matchingRequestParameterName;
|
.queryParam(matchingRequestParameterName).build().getQuery();
|
||||||
}
|
|
||||||
return queryString + "&" + matchingRequestParameterName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -122,4 +122,14 @@ public class DefaultSavedRequestTests {
|
||||||
assertThat(new URL(savedRequest.getRedirectUrl())).hasQuery("foo=bar&success");
|
assertThat(new URL(savedRequest.getRedirectUrl())).hasQuery("foo=bar&success");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// gh-13438
|
||||||
|
@Test
|
||||||
|
public void getRedirectUrlWhenQueryAlreadyHasSuccessThenDoesNotAdd() throws Exception {
|
||||||
|
MockHttpServletRequest request = new MockHttpServletRequest();
|
||||||
|
request.setQueryString("foo=bar&success");
|
||||||
|
DefaultSavedRequest savedRequest = new DefaultSavedRequest(request, new MockPortResolver(8080, 8443),
|
||||||
|
"success");
|
||||||
|
assertThat(savedRequest.getRedirectUrl()).contains("foo=bar&success");
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue