SpringBoot2 + Webflux - WebTestClient 总是返回“401 UNAUTHORIZED”

     2023-02-27     245

关键词:

【中文标题】SpringBoot2 + Webflux - WebTestClient 总是返回“401 UNAUTHORIZED”【英文标题】:SpringBoot2 + Webflux - WebTestClient always returns “401 UNAUTHORIZED” 【发布时间】:2020-02-09 09:10:02 【问题描述】:

我正在尝试在 Springboot 2.1.8 和 Junit5 下使用 WebTestClient 编写一些测试

它总是返回

该项目是使用 JHipster 生成的。这是build.gradle

-----------------UimApiServiceImplTest.java-------------------

...


@ExtendWith(SpringExtension.class)
@WebFluxTest(controllers = UserGuidController.class)
@ContextConfiguration(classes = UserGuidController.class, UimApiServiceImpl.class)

public class UimApiServiceImplTest 

    @Autowired
    private WebTestClient webTestClient;

    @Test
    public void testGetGuidByEmail() 

        webTestClient.get()
            .uri("/uimapi/getguid/email", "someone@xxxxx.com")
            .accept(MediaType.APPLICATION_JSON_UTF8)
            .exchange()
            .expectStatus().isOk();
    

--------UserGuidController.java--------

...
@RestController
@RequestMapping("/uimapi")
public class UserGuidController 

    @Autowired
    private UimApiServiceImpl uimApiService;

    private static final Logger logger = LoggerFactory.getLogger(UserGuidController.class);

    @GetMapping("/getguid/email")
    public String getUserGuid(@PathVariable String email) 
        return uimApiService.getUserGuid(email);
    

【问题讨论】:

请分享你的 pom 文件 我已经在上面更新了。非常感谢 【参考方案1】:

对于 webflux,您可以通过排除 ReactiveSecurityAutoConfiguration 类来禁用 SecurityAutoconfiguration,如下所示:

@WebFluxTest(controllers = YourController.class,excludeAutoConfiguration = ReactiveSecurityAutoConfiguration.class))

【讨论】:

效果很好,谢谢!这应该被标记为解决方案...【参考方案2】:

您的 gradle 依赖项中有 implementation "org.springframework.boot:spring-boot-starter-security"。默认情况下,当在类路径中找到此依赖项时,Spring Boot 会自动在所有端点上启用安全性。

您可以选择通过更新主类来禁用此默认配置:

@SpringBootApplication(exclude =  SecurityAutoConfiguration.class, ManagementWebSecurityAutoConfiguration.class )

这将禁用所有端点的安全性。

如果您想控制要从中删除安全性的端点,您可以使用以下代码和符合您要求的更新来做到这一点:

@Configuration
public class SecurityConfiguration 

  @Bean
  public SecurityWebFilterChain securityFilterChain(ServerHttpSecurity http) 
    http.authorizeExchange().anyExchange().permitAll();
    return http.build();
  

【讨论】:

非常感谢您的帮助!

SpringBoot2 + Webflux - WebTestClient 总是返回“401 UNAUTHORIZED”

】SpringBoot2+Webflux-WebTestClient总是返回“401UNAUTHORIZED”【英文标题】:SpringBoot2+Webflux-WebTestClientalwaysreturns“401UNAUTHORIZED”【发布时间】:2020-02-0909:10:02【问题描述】:我正在尝试在Springboot2.1.8和Junit5下使用WebTestClient编写一些测试... 查看详情

springboot2.0webflux教程|入门篇

目录一、什么是SpringWebFlux二、WebFlux的优势&性能三、WebFlux应用场景四、适用性五、快速入门5.1添加webflux依赖5.2定义接口5.3测试接口六、总结七、GitHub示例代码一、什么是SpringWebFlux下图截自SpringBoot官方网站:结合上图,在了... 查看详情

如何使用webflux在springboot2中设置登录页面?

我创建了SpringBoot2WebFlux应用程序(基于SpringCloudGateway项目),现在尝试配置自定义登录页面而不是标准:@BeanSecurityWebFilterChainspringWebFilterChain(ServerHttpSecurityhttp){returnhttp.httpBasic().and().authorizeExchange().anyExchan 查看详情

springboot2.0中webflux到底优秀在哪里

序言  SpringWebFlux是SpringFramework5.0中引入的新的反应式Web框架与SpringMVC不同,它不需要ServletAPI,完全异步和非阻塞,并通过Reactor项目实现ReactiveStreams规范。       资料https://www.cnblogs.com/ityouknow/p/1 查看详情

[转]springboot2webflux响应式编程学习路径

原文链接spring官方文档springboot2已经发布,其中最亮眼的非webflux响应式编程莫属了!响应式的weblfux可以支持高吞吐量,意味着使用相同的资源可以处理更加多的请求,毫无疑问将会成为未来技术的趋势,是必学的技术!很多人... 查看详情

如何使用 Webflux 提供静态内容?

...容,但我没有找到相关信息。【问题讨论】:您使用的是SpringBoot2.0还是您自己引导webflux?嗨,Brian,我正在使用带有Webflux的SpringBoot2. 查看详情

Spring Boot 2 反应式 webflux

】SpringBoot2反应式webflux【英文标题】:SpringBoot2reactivewebflux【发布时间】:2018-06-2421:32:56【问题描述】:我正在接近SpringBoot2及其实现Web服务的反应式方法。作为几乎所有习惯使用经典同步MVC模式编程的人,我对这种方法有些怀... 查看详情

springboot2.x(14):webflux响应式编程(代码片段)

响应式编程生活案例:传统形式:一群人去餐厅吃饭,顾客1找服务员点餐,服务员把订单交给后台厨师,然后服务员等待,当后台厨师做好饭,交给服务员,经过服务员再交给顾客1,依此类推,该服务员再招待顾客2。服务员可... 查看详情

springboot2.0不容错过的新特性webflux响应式编程

第1章课程介绍课程介绍及导学第2章函数式编程和lambda表达式本章介绍函数式编程的概念,和lambda表达式的基础语法,并分析了惰性求值的应用和实现。最后同意反编译字节码,重点剖析了lambda表达式的底层实现原理第3章Stream流... 查看详情

如何使用 WebFlux 在 Spring Boot 2 中设置登录页面?

】如何使用WebFlux在SpringBoot2中设置登录页面?【英文标题】:HowtosetuploginpageinSpringBoot2withWebFlux?【发布时间】:2018-08-0913:46:26【问题描述】:我已经创建了SpringBoot2WebFlux应用程序(基于SpringCloudGateway项目),现在尝试配置自定义... 查看详情

Spring Webflux vs Vert.x

...们需要开始开发一个微服务,并初步计划使用Vert.x。随着Springboot2.0的最新Milestone版本(包括Reactive支持),我们现在也在考虑将Springboot2.0作为一个选项,但由于这是一个非常新的版本,我对这个版本的稳定性有些担忧。是否有... 查看详情

Spring boot 2.0响应式webflux配置中的默认线程数

】Springboot2.0响应式webflux配置中的默认线程数【英文标题】:DefaultnumberofthreadsinSpringboot2.0reactivewebfluxconfiguration【发布时间】:2018-04-0603:14:59【问题描述】:在使用Spring5响应式Webflux和SpringBoot2.0时,用于处理请求的默认线程数是... 查看详情

如何在 webflux 中调试?

...间】:2019-05-1110:04:58【问题描述】:我使用带有webflux的SpringBoot2.1.1.RELEASE。依赖如下:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-s 查看详情

如何在 Spring boot 2 + Webflux + Thymeleaf 中配置 i18n?

】如何在Springboot2+Webflux+Thymeleaf中配置i18n?【英文标题】:Howtoconfigurei18ninSpringboot2+Webflux+Thymeleaf?【发布时间】:2018-05-1116:04:38【问题描述】:我刚开始一个基于Springboot2+Webflux的新项目。在升级版本的springboot并将spring-boot-starter-... 查看详情

无法通过 repo 删除文档-> 使用 Webflux 在 Spring Boot 2.x 中删除

】无法通过repo删除文档->使用Webflux在SpringBoot2.x中删除【英文标题】:Notabletodeleteadocumentbyrepo-->deleteinSpringBoot2.xwithWebflux【发布时间】:2019-02-1909:47:03【问题描述】:我正在使用SpringBoot2.0.4.RELEASE、webflux和mongodb-reactive,我所... 查看详情

Spring Boot 2 使用 Webflux、Netty 和 HTTP2,导致证书无效,可能配置错误

】SpringBoot2使用Webflux、Netty和HTTP2,导致证书无效,可能配置错误【英文标题】:SpringBoot2usingWebflux,NettyandHTTP2,causinginvalidcertificate,possiblemisconfiguration【发布时间】:2021-05-2311:34:23【问题描述】:我没有找到太多关于使用HTTP2配置Ne... 查看详情

使用 WebFlux 阻塞 I/O 操作

...3-2711:50:57【问题描述】:我们有一个流程,我们希望使用SpringBoot2WebFlux通过响应式编程来实现。目前我们没有反应式编程的经验。作为此流程的一部分,我们将创建一个或多个HTTP请求(我猜是使用WebClient),并从DB中读取一些数... 查看详情

Spring webflux 和 Angular

...-03-1523:34:18【问题描述】:我开发了一个带有webflux后端的springboot2,现在我必须集成前端部分。我的处理程序使用分页返回Flux。我无法理解的是前端如何知道可用页数。如果我返回Page我有所有需要的信息,但是有通量?我之前... 查看详情