java - 使用 WebTestClient 在 springBootTest 中禁用安全性
问题描述
SpringBoot 2.1 发行说明中包含以下信息:
安全配置现在应用于 WebTestClient。有关测试安全端点的更多信息,请参阅 Spring Security 参考文档的相关部分。
问题:
将 SpringBoot 从2.0.4更新到2.1.2后,我发现我的测试已经停止工作。我正在使用@SpringBootTest
我的 REST 测试。我WebTestClient
无法访问服务器。我确实尝试了很多(例如从这里)来模拟或禁用安全性并且仍然得到403 FORBIDDEN
响应。
你有什么线索可能是错的吗?
我WebTestClient
通过以下方式创建:
client = WebTestClient
.bindToServer()
.baseUrl("http://localhost:$port")
.build()
还试图排除SecurityAutoConfiguration.class
.
解决方案
在某个黑暗的地方,在兔子洞的深处,我发现了这个:
@TestConfiguration
@Order(1)
public class SecurityConfiguration
implements WebSecurityConfigurer<WebSecurity> {
@Override
public void init(WebSecurity builder) throws Exception {
builder.ignoring().requestMatchers(
new AntPathRequestMatcher("/**"));
}
@Override
public void configure(WebSecurity builder) throws Exception {
}
}
记得在 中注册类@SpringBootTest
,例如:
@SpringBootTest(
classes = [SomeApplication, SecurityConfiguration],
webEnvironment = RANDOM_PORT
)
它并没有禁用弹簧安全性,但它使它变得透明。
推荐阅读
- python - Python 模板变量
- python-3.x - 将数据框导出为 csv 日期类型
- autodesk-viewer - 在移动设备上禁用模型浏览器中的搜索
- linux - 在 LFS 第五模块上编译 Glibc-2.28 时出错
- powerapps - 使用 PowerApp 将用户的输入输入到 word 文档中。
- highcharts - Highcharts Pie动态系列颜色
- android - 软键盘关闭后如何检测屏幕重绘已完成
- python - 从带有掩码 url 的服务器运行 API
- c# - 从桌面应用程序调用 ADFS 保护的 Web Api
- python - InvalidArgumentError: indices[] = is not in: Re-training not starting after INFO:tensorflow:global_step/sec: 0