diff --git a/config/src/test/java/org/springframework/security/config/annotation/web/builders/WebSecurityTests.java b/config/src/test/java/org/springframework/security/config/annotation/web/builders/WebSecurityTests.java index 78b7820c71..62574f77f7 100644 --- a/config/src/test/java/org/springframework/security/config/annotation/web/builders/WebSecurityTests.java +++ b/config/src/test/java/org/springframework/security/config/annotation/web/builders/WebSecurityTests.java @@ -18,6 +18,8 @@ package org.springframework.security.config.annotation.web.builders; import java.io.IOException; +import io.micrometer.observation.ObservationRegistry; +import io.micrometer.observation.ObservationTextPublisher; import jakarta.servlet.ServletException; import jakarta.servlet.http.HttpServletResponse; import org.junit.jupiter.api.AfterEach; @@ -104,6 +106,15 @@ public class WebSecurityTests { @Test public void requestRejectedHandlerInvoked() throws ServletException, IOException { + loadConfig(DefaultConfig.class); + this.request.setServletPath("/spring"); + this.request.setRequestURI("/spring/\u0019path"); + this.springSecurityFilterChain.doFilter(this.request, this.response, this.chain); + assertThat(this.response.getStatus()).isEqualTo(HttpServletResponse.SC_BAD_REQUEST); + } + + @Test + public void customRequestRejectedHandlerInvoked() throws ServletException, IOException { loadConfig(RequestRejectedHandlerConfig.class); this.request.setServletPath("/spring"); this.request.setRequestURI("/spring/\u0019path"); @@ -143,6 +154,11 @@ public class WebSecurityTests { this.context.getAutowireCapableBeanFactory().autowireBean(this); } + @EnableWebSecurity + static class DefaultConfig { + + } + @EnableWebSecurity @Configuration @EnableWebMvc @@ -243,4 +259,17 @@ public class WebSecurityTests { } + @Configuration + @EnableWebSecurity + static class ObservationRegistryConfig { + + @Bean + ObservationRegistry observationRegistry() { + ObservationRegistry observationRegistry = ObservationRegistry.create(); + observationRegistry.observationConfig().observationHandler(new ObservationTextPublisher()); + return observationRegistry; + } + + } + }