Get request attribute with Spring webflux and WebTestClient(使用Spring WebFlux和WebTestClient获取请求属性)
问题描述
使用Spring WebFlux时,我无法将我正在设置的属性从WebTestClient
绑定到RestController
。
我试了我能想到的两种方法。
首先使用@RequestAttribute
注释,我得到:
无法处理请求[Get/Attributes/Annotation]:响应状态为400,原因为"缺少字符串类型的请求属性‘ATTRIBUTE’"
然后我尝试使用ServerWebExchange,结果null
。
这是我的控制器:
这是我的失败测试:
在我的实际应用程序中,我有一个SecurityConextRepository,它从(解码的)标头值设置一些属性,我想要获取这些属性。
推荐答案
我在一个测试中遇到了同样的问题,该测试以前使用MockMvc,后来不得不转换为使用WebClient。像@jcfandino一样,我希望WebClient上的.attribute()
方法的工作方式类似于MockMvc的requestAttribute()
。
我还没有发现.attribute()
应该如何使用,但我已经通过添加自定义测试筛选器绕过了整个问题。我不确定此方法是否正确,但由于此问题尚未回答,下面的方法可能对遇到相同问题的人有帮助。
这篇关于使用Spring WebFlux和WebTestClient获取请求属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!