mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-28 05:09:06 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			70 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [[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/authentication.adoc#test-mockmvc-withmockuser[Running as a User in Spring MVC Test with Annotations].
 | |
| To do so, use Spring Security's `SecurityMockMvcConfigurers.springSecurity()`:
 | |
| 
 | |
| [tabs]
 | |
| ======
 | |
| 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 lateinit var mvc: MockMvc
 | |
| 
 | |
|     @BeforeEach
 | |
|     fun setup() {
 | |
|         mvc = MockMvcBuilders
 | |
|             .webAppContextSetup(context)
 | |
|             .apply<DefaultMockMvcBuilder>(springSecurity()) // <1>
 | |
|             .build()
 | |
|     }
 | |
|     // ...
 | |
| }
 | |
| ----
 | |
| ======
 | |
| <1> `SecurityMockMvcConfigurers.springSecurity()` will perform all of the initial setup we need to integrate Spring Security with Spring MVC Test
 | |
| 
 |