如何在 Spring Boot 2.2.0 的集成测试中禁用安全性?

Posted

技术标签:

【中文标题】如何在 Spring Boot 2.2.0 的集成测试中禁用安全性?【英文标题】:How to disable security in integration tests in Spring Boot 2.2.0? 【发布时间】:2020-04-05 23:36:32 【问题描述】:

我需要在集成测试中禁用 spring-security。我正在使用Spring boot 2.2.0,在这个版本中,我没有找到一些方法来做到这一点。

@EnableAutoConfiguration(exclude = SecurityAutoConfiguration.class, SecurityFilterAutoConfiguration.class) // not working

@EnableAutoConfiguration(exclude =  SecurityAutoConfiguration.class, ManagementSecurityAutoConfiguration.class ) // not working too.

我该怎么做?

【问题讨论】:

这能回答你的问题吗? Disable security for unit tests with spring boot @Fateh 不,这些对我不起作用!我之前读过这篇文章。 【参考方案1】:

你可以通过个人资料玩这个游戏

@ActiveProfiles(value = "IntegrationTest")
public class myTest 

【讨论】:

它对我不起作用。你能给我更多的描述如何做吗? 如果你能在这个链接中用 42 票 来回答***.com/questions/31169720/…【参考方案2】:

你和我一定同时在同一件事上撞到了同一件事。

我能够让@AutoConfigureMockMvc(secure=false) 做我想做的事——禁用我的单元测试的所有安全性。但是,由于我使用的是 Spring Boot 2.1.6,它在我的 IDE 中立即被标记为弃用。我不喜欢使用已弃用的东西,所以我尝试并尝试让 exclude 属性起作用,但它从来没有。

我正要放弃它并遭受弃用警告,因为至少我的单元测试可以使用它。

一时兴起,我尝试将项目中的 Spring Boot 从 2.1.6 升级到 2.2.2。令我恐惧的是,secure 属性不再被弃用——它被完全删除了!我在属性消失的情况下对单元测试进行了一次旋转,但是 exclude 属性完全按照您在问题中显示的方式填充并且它起作用了!

TL;博士?升级到 Spring Boot 2.2.2

【讨论】:

以上是关于如何在 Spring Boot 2.2.0 的集成测试中禁用安全性?的主要内容,如果未能解决你的问题,请参考以下文章

Spring Boot Actuator 的“httptrace”端点在 Spring Boot 2.2.0 中不再存在

如何在 Spring Boot 集成测试中使用嵌入式 MongoDB

如何调试,为啥 Spring Boot 集成测试上下文没有在测试之间重用?

如何在 AWS 上运行的 Spring Boot 应用程序上本地运行集成测试?

Spring Boot 集成测试。如何测试“删除”方法?

如何在没有登录页面的情况下将 Keycloak 与 Spring Boot(API) 集成