Spring(WS)如何计算请求主体的特定字符串哈希

7gyucuyw  于 2022-10-30  发布在  Spring
关注(0)|答案(1)|浏览(133)

我们有多个Spring WS端点,它们都使用相似的签名运行
curRequest.getReader
出于某种目的,我们需要计算请求主体字符串的特定散列。

  • 再次封送行程刚刚取消封送行程的对象
  • 在方法签名中使用主体/字符串并在方法中“手动”解组

有没有办法获得请求主体String?我们需要用我们提供的每个方法计算这个Hash,并把它提供给服务方法。如果唯一的选择是使用Filter:如何将值提供给端点方法。
什么是不工作:

HttpServletRequest curRequest =
        ((ServletRequestAttributes) RequestContextHolder.currentRequestAttributes())
            .getRequest();
    String body = IOUtils.toString(curRequest.getInputStream(), UTF_8);

body总是curRequest.getReader我得到了一个异常,即gerReader已经被调用了。我还试图向方法(@RequestBody)添加一个额外的参数,但这也将端点更改为不再工作/不存在ws的东西。

krcsximq

krcsximq1#

如果使用过滤器,则可以通过静态ThreadLocal将哈希值传递给每个方法体

相关问题