SPR-8596 Detect case in UriPathHelper where originating request query (before forwarding) is null.
This commit is contained in:
parent
ce70c985b4
commit
7bf44f06a0
|
@ -287,14 +287,15 @@ public class UrlPathHelper {
|
||||||
* @return the query string
|
* @return the query string
|
||||||
*/
|
*/
|
||||||
public String getOriginatingQueryString(HttpServletRequest request) {
|
public String getOriginatingQueryString(HttpServletRequest request) {
|
||||||
String queryString = (String) request.getAttribute(WebUtils.FORWARD_QUERY_STRING_ATTRIBUTE);
|
if ((request.getAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE) != null) ||
|
||||||
if (queryString == null) {
|
(request.getAttribute(WebUtils.ERROR_REQUEST_URI_ATTRIBUTE) != null)) {
|
||||||
queryString = request.getQueryString();
|
return (String) request.getAttribute(WebUtils.FORWARD_QUERY_STRING_ATTRIBUTE);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
return request.getQueryString();
|
||||||
}
|
}
|
||||||
return queryString;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Decode the supplied URI string and strips any extraneous portion after a ';'.
|
* Decode the supplied URI string and strips any extraneous portion after a ';'.
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -289,4 +289,26 @@ public class UrlPathHelperTests {
|
||||||
request.setAttribute(WEBSPHERE_URI_ATTRIBUTE, "/test/foo/foo/");
|
request.setAttribute(WEBSPHERE_URI_ATTRIBUTE, "/test/foo/foo/");
|
||||||
tomcatCasualServletFolder();
|
tomcatCasualServletFolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getOriginatingQueryString() {
|
||||||
|
request.setQueryString("forward=on");
|
||||||
|
request.setAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE, "/path");
|
||||||
|
request.setAttribute(WebUtils.FORWARD_QUERY_STRING_ATTRIBUTE, "original=on");
|
||||||
|
assertEquals("original=on", this.helper.getOriginatingQueryString(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getOriginatingQueryStringNotPresent() {
|
||||||
|
request.setQueryString("forward=true");
|
||||||
|
assertEquals("forward=true", this.helper.getOriginatingQueryString(request));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void getOriginatingQueryStringIsNull() {
|
||||||
|
request.setQueryString("forward=true");
|
||||||
|
request.setAttribute(WebUtils.FORWARD_REQUEST_URI_ATTRIBUTE, "/path");
|
||||||
|
assertNull(this.helper.getOriginatingQueryString(request));
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in New Issue