gpt4 book ai didi

java - 使用 WebTestClient 在 springBootTest 中禁用安全性

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:33:29 30 4
gpt4 key购买 nike

2.1 Release Notes 中的 SpringBoot 包含以下信息:

Security configuration is now applied to WebTestClient. For more information on testing secured endpoints, please refer to the relevant section of Spring Security’s reference documentation.

问题:

将 SpringBoot 从 2.0.4 更新到 2.1.2 后,我发现我的测试已经停止工作。我正在使用 @SpringBootTest 进行 REST 测试。我的 WebTestClient 无法连接到服务器。我确实尝试了很多(例如来自 here )模拟或禁用安全性并仍然得到 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
)

它并没有禁用 spring security,而是让它变得透明。

关于java - 使用 WebTestClient 在 springBootTest 中禁用安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54443477/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com