我正在尝试使用 Spring MVC Test Framework. 测试安全的 REST 方法
val result = this.mockMvc!!
.perform(get("/ping").with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")
问题是,在这个请求中,被模拟的服务器正在响应 302 代码,以重定向到安全 channel 。结果永远不会
2xx
代码,始终是 302
代码。我想关注这个重定向,或者第一时间在安全 channel 上执行请求。如何直接在模拟的安全 channel 上执行此测试?
最佳答案
最后,我找到了解决方案。我需要调用secure(true)
在 mock get("/")
.令我惊讶的是,这不在文档上,而在 javadocs 上:
val result = this.mockMvc!!
.perform(get("/ping").secure(true).with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")
关于spring-mvc - 使用 Spring MVC 测试框架测试安全的 REST 端点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52085897/