【发布时间】:2019-03-28 06:27:36
【问题描述】:
我最近继承了一些java代码,需要在HttpSecurity配置中切换到无状态:
http.csrf().disable()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS);
之后,一些使用 MockMvc 的测试失败了。我知道@WithMockUser 不适用于无状态,那么我应该改变什么才能让它通过? 这是一个示例测试:
@Before
public void setUp() throws Exception {
this.mockMvc = MockMvcBuilders.standaloneSetup(apAdminController)
.apply(SecurityMockMvcConfigurers.springSecurity(springSecurityFilterChain))
.setCustomArgumentResolvers(new PageableHandlerMethodArgumentResolver())
.build();
storeUser = new StoreUser();
storeUser.setUsername("smith");
storeUser.setEnabled(true);
}
@Test
@WithMockUser(roles = "ADMIN")
public void testViewStoreUserWithAdmin() {
try {
mockMvc.perform(
get("{resource}/1", RESOURCE).with(testSecurityContext()))
.andDo(print())
.andExpect(status().isOk());
} catch (Exception e) {
fail("Test failed: " + e.getMessage());
}
}
【问题讨论】:
标签: java mockito stateless mockmvc