Browse Source

Add tests for PathPatternRequestMatcher path caching

Verify parsed request path is cleared when matcher parses it, and preserved when already present.

Signed-off-by: coehgns <modooboiroo@gmail.com>
pull/18721/head
coehgns 1 month ago
parent
commit
0d3a5d210a
  1. 19
      web/src/test/java/org/springframework/security/web/servlet/util/matcher/PathPatternRequestMatcherTests.java

19
web/src/test/java/org/springframework/security/web/servlet/util/matcher/PathPatternRequestMatcherTests.java

@ -154,6 +154,25 @@ public class PathPatternRequestMatcherTests { @@ -154,6 +154,25 @@ public class PathPatternRequestMatcherTests {
assertThat(matcher.matches(mock)).isFalse();
}
@Test
void matcherWhenRequestPathNotParsedThenDoesNotLeaveParsedRequestPath() {
RequestMatcher matcher = pathPattern("/uri");
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isFalse();
assertThat(matcher.matches(request)).isTrue();
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isFalse();
}
@Test
void matcherWhenRequestPathAlreadyParsedThenLeavesParsedRequestPath() {
RequestMatcher matcher = pathPattern("/uri");
MockHttpServletRequest request = new MockHttpServletRequest("GET", "/uri");
ServletRequestPathUtils.parseAndCache(request);
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isTrue();
assertThat(matcher.matches(request)).isTrue();
assertThat(ServletRequestPathUtils.hasParsedRequestPath(request)).isTrue();
}
MockHttpServletRequest request(String uri) {
MockHttpServletRequest request = new MockHttpServletRequest("GET", uri);
ServletRequestPathUtils.parseAndCache(request);

Loading…
Cancel
Save