[[test-mockmvc-setup]] = Setting Up MockMvc and Spring Security [NOTE] ==== Spring Security's testing support requires spring-test-4.1.3.RELEASE or greater. ==== To use Spring Security with Spring MVC Test, add the Spring Security `FilterChainProxy` as a `Filter`. You also need to add Spring Security's `TestSecurityContextHolderPostProcessor` to support xref:servlet/test/mockmvc/setup.adoc#test-mockmvc-withmockuser[Running as a User in Spring MVC Test with Annotations]. To do so, use Spring Security's `SecurityMockMvcConfigurers.springSecurity()`: ==== .Java [source,java,role="primary"] ---- import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*; @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = SecurityConfig.class) @WebAppConfiguration public class CsrfShowcaseTests { @Autowired private WebApplicationContext context; private MockMvc mvc; @BeforeEach public void setup() { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) // <1> .build(); } // ... } ---- .Kotlin [source,kotlin,role="secondary"] ---- @ExtendWith(SpringExtension.class) @ContextConfiguration(classes = [SecurityConfig::class]) @WebAppConfiguration class CsrfShowcaseTests { @Autowired private lateinit var context: WebApplicationContext private var mvc: MockMvc? = null @BeforeEach fun setup() { mvc = MockMvcBuilders .webAppContextSetup(context) .apply(springSecurity()) // <1> .build() } // ... } ---- <1> `SecurityMockMvcConfigurers.springSecurity()` will perform all of the initial setup we need to integrate Spring Security with Spring MVC Test ====