spring-mvc - 使用 Spring MVC 测试框架测试安全的 REST 端点
问题描述
我正在尝试使用Spring MVC 测试框架测试安全的 REST 方法。
val result = this.mockMvc!!
.perform(get("/ping").with(SecurityMockMvcRequestPostProcessors.user("user")))
.andDo(MockMvcResultHandlers.print())
.andReturn()
assertThat(result.response.contentAsString).contains("pong")
问题是,在这个请求中,被模拟的服务器正在响应 302 代码,以重定向到安全通道。结果永远不是2xx
代码,永远是302
代码。我想关注这个重定向,或者第一时间在安全通道上执行请求。
如何直接在模拟的安全通道上执行此测试?
解决方案
最后,我找到了解决方案。我需要secure(true)
在 mocked 上调用 a 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")
推荐阅读
- c# - 努力获取已发布文件的 InputStream 的正确字符串表示形式
- r - 使用 Future 包在 R 中进行异步编程
- axios - this$store 函数未定义
- sql-server - 如何为查询中的批量插入中的所有行生成单个 GUID?
- visual-studio-2017 - 如何修复 Hololens Emulator 中的“请确保目标设备已启用开发者模式”错误
- python - 我在石头剪刀布游戏中的 while 循环不起作用。我应该如何纠正它?
- tsql - 防止事务中的 SQL 注入
- macos - 将文件从多个文件夹移动到子文件夹
- php - Mojave 10.14.5 和自制 PHP 无法正常工作
- javascript - ol 层向量 getSource addFeature