From dab815af40f5a87bd620afceca743dfe787b9fe7 Mon Sep 17 00:00:00 2001 From: Madhura Bhave Date: Fri, 16 Aug 2019 10:51:57 -0700 Subject: [PATCH] Simplify mockmvc security in tests following upstream changes SecurityMockMvcConfigurer now honors filter order so we can use that instead of manually adding the filter. --- spring-boot-project/spring-boot-devtools/pom.xml | 5 +++++ .../RemoteDevToolsAutoConfigurationTests.java | 11 +++++------ 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spring-boot-project/spring-boot-devtools/pom.xml b/spring-boot-project/spring-boot-devtools/pom.xml index 54dfa7b26b..15b3df397c 100644 --- a/spring-boot-project/spring-boot-devtools/pom.xml +++ b/spring-boot-project/spring-boot-devtools/pom.xml @@ -181,6 +181,11 @@ postgresql test + + org.springframework.security + spring-security-test + test + org.thymeleaf thymeleaf diff --git a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfigurationTests.java b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfigurationTests.java index 2f903a02b4..72c2efcf2e 100644 --- a/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfigurationTests.java +++ b/spring-boot-project/spring-boot-devtools/src/test/java/org/springframework/boot/devtools/autoconfigure/RemoteDevToolsAutoConfigurationTests.java @@ -52,6 +52,7 @@ import org.springframework.test.web.servlet.setup.MockMvcBuilders; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatExceptionOfType; import static org.mockito.Mockito.mock; +import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.springSecurity; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; /** @@ -151,9 +152,8 @@ class RemoteDevToolsAutoConfigurationTests { void securityConfigurationShouldAllowAccess() throws Exception { this.context = getContext(() -> loadContext("spring.devtools.remote.secret:supersecret")); DispatcherFilter filter = this.context.getBean(DispatcherFilter.class); - Filter securityFilterChain = this.context.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN, Filter.class); - MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).addFilter(securityFilterChain) - .addFilter(filter).build(); + MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity()).addFilter(filter) + .build(); mockMvc.perform(MockMvcRequestBuilders.get(DEFAULT_CONTEXT_PATH + "/restart").header(DEFAULT_SECRET_HEADER_NAME, "supersecret")).andExpect(status().isOk()); assertRestartInvoked(true); @@ -164,9 +164,8 @@ class RemoteDevToolsAutoConfigurationTests { this.context = getContext(() -> loadContext("spring.devtools.remote.secret:supersecret", "server.servlet.context-path:/test", "spring.devtools.remote.context-path:/custom")); DispatcherFilter filter = this.context.getBean(DispatcherFilter.class); - Filter securityFilterChain = this.context.getBean(BeanIds.SPRING_SECURITY_FILTER_CHAIN, Filter.class); - MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).addFilter(securityFilterChain) - .addFilter(filter).build(); + MockMvc mockMvc = MockMvcBuilders.webAppContextSetup(this.context).apply(springSecurity()).addFilter(filter) + .build(); mockMvc.perform( MockMvcRequestBuilders.get("/test/custom/restart").header(DEFAULT_SECRET_HEADER_NAME, "supersecret")) .andExpect(status().isOk());