12. spring mvc test integration

设置MockMvc和Spring安全认证机制

为了要在Spring MVC Test 中使用spring 的安全认证,必须添加spring 安全认证FilterChainProxy作为一个Filter。同时也必须要添加Spring 安全认证的TestSecurityContextHolderPostProcessor,以便支持使用注解方式来执行Spring MVC Test。这可以通过使用spring安全认证的SecurityMockMvcConfigurers.springSecurity()来实现。例子如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*;

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@WebAppConfiguration
public class CsrfShowcaseTests {

	@Autowired
	private WebApplicationContext context;

	private MockMvc mvc;

	@Before
	public void setup() {
		mvc = MockMvcBuilders
				.webAppContextSetup(context)
				.apply(springSecurity()) //1
				.build();
	}

SecurityMockMvcConfigurers.springSecurity() 将会在setup中初始化所有Spring MVC Test必须的动作。