mirror of
				https://github.com/spring-projects/spring-security.git
				synced 2025-10-31 06:38:42 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| [[test-mockmvc-setup]]
 | |
| = Setting Up MockMvc and Spring Security
 | |
| 
 | |
| In order to use Spring Security with Spring MVC Test it is necessary to add the Spring Security `FilterChainProxy` as a `Filter`.
 | |
| It is also necessary 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].
 | |
| This can be done using Spring Security's `SecurityMockMvcConfigurers.springSecurity()`.
 | |
| For example:
 | |
| 
 | |
| NOTE: Spring Security's testing support requires spring-test-4.1.3.RELEASE or greater.
 | |
| 
 | |
| [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 var mvc: MockMvc? = null
 | |
| 
 | |
|     @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
 |