gpt4 book ai didi

spring-boot - Spring Boot 2.1 - 没有 Spring Security 自动配置的 @WebMvcTest

转载 作者:行者123 更新时间:2023-12-03 14:37:14 25 4
gpt4 key购买 nike

在迁移到 Spring Boot 2.1 之前,我们使用 @WebMvcTest 在我们的服务中进行了几个 Controller 测试。结合 @AutoConfigureMockMvc :

@WebMvcTest(SomeController.class)
@AutoConfigureMockMvc(secure = false)
public class SomeControllerTests { ... }

这具有禁用 Spring Security 配置的效果,您可以在不模拟 OAuth/JWT 的情况下运行 MVC 测试。

在 Spring Boot 2.1 中, secured属性已被弃用,发行说明中提到

[...] @WebMvcTest looks for a WebSecurityConfigurer bean [...].



为了避免被弃用的 secured我们的 WebSecurityConfigurer 的属性和加载我们将测试重写为:
@WebMvcTest(
value = SomeController.class,
excludeFilters = @ComponentScan.Filter(type = FilterType.ASSIGNABLE_TYPE, classes = WebSecurityConfigurer.class),
excludeAutoConfiguration = MockMvcSecurityAutoConfiguration.class)
public class SomeControllerTests { ... }

问题是:Spring Boot 2.1 中是否有更紧凑的方式来定义此类测试?

最佳答案

是的,与其解决该标志已被弃用的事实,您应该接受这样一个事实,即这正朝着这个方向前进。

从 Spring Boot 2.1 开始,如果您有 Spring Security,您的测试将使用您的自定义配置来保护。真正的问题是什么?

如果您不想对某些测试进行身份验证,只需使用 Spring Security 的测试基础设施并添加 @WithMockUser .

关于spring-boot - Spring Boot 2.1 - 没有 Spring Security 自动配置的 @WebMvcTest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53389774/

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