Set the useTrailingSlashMatch to true for tests

The Spring MVC changed the default behavior for trailing slash match
with https://github.com/spring-projects/spring-framework/issues/28552.
This causes failures in Spring Security's tests.

Setting the `useTrailingSlashMatch` to `true` ensures that Spring
Security will work for users who have modified the default configuration.
Specifing the request mapper with trailing slash path ensures that the tests
are successful when default behavior is used.

Closes gh-11451
This commit is contained in:
Igor Bolic 2022-07-04 11:56:21 +02:00 committed by Josh Cummings
parent 6510274854
commit d96b4a0463
12 changed files with 12 additions and 6 deletions

View File

@ -232,6 +232,7 @@ public class WebSecurityTests {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true);
configurer.setUseTrailingSlashMatch(true);
}
}

View File

@ -662,6 +662,7 @@ public class AuthorizeRequestsTests {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true);
configurer.setUseTrailingSlashMatch(true);
}
}

View File

@ -491,6 +491,7 @@ public class HttpSecurityRequestMatchersTests {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true);
configurer.setUseTrailingSlashMatch(true);
}
}

View File

@ -262,6 +262,7 @@ public class UrlAuthorizationConfigurerTests {
@Override
public void configurePathMatch(PathMatchConfigurer configurer) {
configurer.setUseSuffixPatternMatch(true);
configurer.setUseTrailingSlashMatch(true);
}
}

View File

@ -74,7 +74,7 @@ public class WebTestClientHtmlUnitDriverBuilderTests {
class HelloWorldController {
@ResponseBody
@GetMapping(produces = MediaType.TEXT_HTML_VALUE)
@GetMapping(path = "/", produces = MediaType.TEXT_HTML_VALUE)
String index() {
// @formatter:off
return "<html>\n"

View File

@ -188,6 +188,7 @@ class AuthorizeHttpRequestsDslTests {
open class LegacyMvcMatchingConfig : WebMvcConfigurer {
override fun configurePathMatch(configurer: PathMatchConfigurer) {
configurer.setUseSuffixPatternMatch(true)
configurer.setUseTrailingSlashMatch(true)
}
}

View File

@ -178,6 +178,7 @@ class AuthorizeRequestsDslTests {
open class LegacyMvcMatchingConfig : WebMvcConfigurer {
override fun configurePathMatch(configurer: PathMatchConfigurer) {
configurer.setUseSuffixPatternMatch(true)
configurer.setUseTrailingSlashMatch(true)
}
}

View File

@ -278,7 +278,7 @@ class ServerJwtDslTests {
@RestController
internal class BaseController {
@GetMapping
@GetMapping("/")
fun index() {
}
}

View File

@ -33,7 +33,7 @@
</http>
<mvc:annotation-driven>
<mvc:path-matching suffix-pattern="true"/>
<mvc:path-matching suffix-pattern="true" trailing-slash="true"/>
</mvc:annotation-driven>
<b:bean name="path" class="org.springframework.security.config.http.InterceptUrlConfigTests.PathController"/>

View File

@ -33,7 +33,7 @@
</http>
<mvc:annotation-driven>
<mvc:path-matching suffix-pattern="true"/>
<mvc:path-matching suffix-pattern="true" trailing-slash="true"/>
</mvc:annotation-driven>
<b:bean name="path" class="org.springframework.security.config.http.InterceptUrlConfigTests.PathController"/>

View File

@ -95,7 +95,7 @@ public class SecurityMockMvcRequestPostProcessorsAuthenticationStatelessTests {
@RestController
static class Controller {
@RequestMapping
@RequestMapping("/")
String hello() {
return "Hello";
}

View File

@ -89,7 +89,7 @@ public class SecurityMockMvcRequestPostProcessorsTestSecurityContextStatelessTes
@RestController
static class Controller {
@RequestMapping
@RequestMapping("/")
String hello() {
return "Hello";
}