Avoid unnecessary parsing of path params

Closes gh-25690
This commit is contained in:
Rossen Stoyanchev
2020-09-03 20:35:06 +01:00
parent 2281e42191
commit a63c8886c0
4 changed files with 22 additions and 25 deletions

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2018 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -126,22 +126,14 @@ public class UrlPathHelperTests {
}
@Test
public void getRequestKeepSemicolonContent() throws UnsupportedEncodingException {
public void getRequestKeepSemicolonContent() {
helper.setRemoveSemicolonContent(false);
request.setRequestURI("/foo;a=b;c=d");
assertEquals("/foo;a=b;c=d", helper.getRequestUri(request));
request.setRequestURI("/foo;jsessionid=c0o7fszeb1");
assertEquals("jsessionid should always be removed", "/foo", helper.getRequestUri(request));
request.setRequestURI("/foo;a=b;jsessionid=c0o7fszeb1;c=d");
assertEquals("jsessionid should always be removed", "/foo;a=b;c=d", helper.getRequestUri(request));
// SPR-10398
request.setRequestURI("/foo;a=b;JSESSIONID=c0o7fszeb1;c=d");
assertEquals("JSESSIONID should always be removed", "/foo;a=b;c=d", helper.getRequestUri(request));
assertEquals("/foo;jsessionid=c0o7fszeb1", helper.getRequestUri(request));
}
@Test

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2019 the original author or authors.
* Copyright 2002-2020 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -88,6 +88,19 @@ public class WebUtilsTests {
variables = WebUtils.parseMatrixVariables("colors=red;colors=blue;colors=green");
assertEquals(1, variables.size());
assertEquals(Arrays.asList("red", "blue", "green"), variables.get("colors"));
variables = WebUtils.parseMatrixVariables("jsessionid=c0o7fszeb1");
assertTrue(variables.isEmpty());
variables = WebUtils.parseMatrixVariables("a=b;jsessionid=c0o7fszeb1;c=d");
assertEquals(2, variables.size());
assertEquals(Collections.singletonList("b"), variables.get("a"));
assertEquals(Collections.singletonList("d"), variables.get("c"));
variables = WebUtils.parseMatrixVariables("a=b;jsessionid=c0o7fszeb1;c=d");
assertEquals(2, variables.size());
assertEquals(Collections.singletonList("b"), variables.get("a"));
assertEquals(Collections.singletonList("d"), variables.get("c"));
}
@Test