Support "*" mapping in MockMvc filter registration
Prior to this commit, configuring a Servlet filter in MockMvc with a defined mapping would only consider "/*" as a catch-all pattern. This commit relaxes this rule by also accepting "*" mappings. Closes gh-28041
This commit is contained in:
parent
31a62ff8ba
commit
4bf995fa8b
|
@ -47,9 +47,11 @@ import org.springframework.web.util.UrlPathHelper;
|
|||
*/
|
||||
final class MockMvcFilterDecorator implements Filter {
|
||||
|
||||
private static final String EXTENSION_MAPPING_PATTERN = "*.";
|
||||
private static final String ALL_MAPPING_PATTERN = "*";
|
||||
|
||||
private static final String PATH_MAPPING_PATTERN = "/*";
|
||||
private static final String EXTENSION_MAPPING_PATTERN = ALL_MAPPING_PATTERN + ".";
|
||||
|
||||
private static final String PATH_MAPPING_PATTERN = "/" + ALL_MAPPING_PATTERN;
|
||||
|
||||
private final Filter delegate;
|
||||
|
||||
|
@ -103,7 +105,7 @@ final class MockMvcFilterDecorator implements Filter {
|
|||
if (urlPattern.startsWith(EXTENSION_MAPPING_PATTERN)) {
|
||||
this.endsWithMatches.add(urlPattern.substring(1));
|
||||
}
|
||||
else if (urlPattern.equals(PATH_MAPPING_PATTERN)) {
|
||||
else if (urlPattern.equals(PATH_MAPPING_PATTERN) || urlPattern.equals(ALL_MAPPING_PATTERN)) {
|
||||
this.startsWithMatches.add("");
|
||||
}
|
||||
else if (urlPattern.endsWith(PATH_MAPPING_PATTERN)) {
|
||||
|
|
|
@ -95,7 +95,7 @@ public class MockMvcFilterDecoratorTests {
|
|||
|
||||
@Test
|
||||
public void matchPathMappingAll() throws Exception {
|
||||
assertFilterInvoked("/test", "/*");
|
||||
assertFilterInvoked("/test", "*");
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
Loading…
Reference in New Issue