【发布时间】:2017-05-26 12:32:53
【问题描述】:
在本文档Spring Security MVC Test 中描述了如何使用 Spring Security 测试安全资源。我按照提供的所有步骤操作,但访问受保护的资源仍然返回错误代码 401(未经授权)。
这是我的测试课
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
@WebAppConfiguration
@SpringBootTest
@TestPropertySource(locations = "classpath:test.properties")
public class UserControllerTest {
@Autowired
private WebApplicationContext context;
private MockMvc mockMvc;
@Before
public void setup() throws Exception {
this.mockMvc = MockMvcBuilders.webAppContextSetup(context)
.defaultRequest(
get("/api/users/1")
.with(user("test@test.com").password("test"))
.with(httpBasic("sc68", "adminpass"))
)
.apply(springSecurity())
.build();
}
@Test
public void testUnprotectedResource() throws Exception {
mockMvc.perform(get("/api/articles"))
.andExpect(status().isOk());
}
@Test
public void testProtectedResource() throws Exception {
mockMvc.perform(get("/api/users/1"))
.andExpect(status().isOk());
}
}
我的资源服务器配置:
@Throws(Exception::class)
override fun configure(http: HttpSecurity) {
http.authorizeRequests()
.antMatchers("/api/users/register").permitAll()
.antMatchers("/api/articles").permitAll()
.anyRequest().authenticated().and()
.sessionManagement().sessionCreationPolicy(SessionCreationPolicy.STATELESS).and( )
.csrf().disable()
}
如果您想查看整个项目,可以找到here。我已经尝试了不同的测试运行器以及教程中描述的所有内容,但我找不到如何在测试期间获得经过身份验证的用户的解决方案。
【问题讨论】:
标签: java spring security spring-mvc spring-security