【问题标题】:How to get the verbatim request body in Spring MVC?如何在 Spring MVC 中获取逐字请求正文?
【发布时间】:2013-07-26 08:20:59
【问题描述】:

我有一个 Spring MVC (3.2.2) 应用程序,我需要检查请求正文的加密签名(在请求标头中传递),其中包含类型为 application/x-www-form-urlencoded 的数据

我的问题:Spring MVC 似乎无法获取实际的、未处理的 HTTP 请求正文,因此无法检查签名。

  • 当我在请求处理程序方法中使用 @RequestBody 注释时,我得到了内容,但各个表单字段的顺序是随机的 - 显然是从解析的表单数据重新生成的。
  • 当我使用HttpServletRequest 类型的参数时,它的主体是空的
  • ReaderInputStream 参数也是如此。

如何防止或绕过请求正文的这种预处理?

【问题讨论】:

  • 顺便说一句:我认为这也是 amz s3 签名是从 ordered 请求参数列表构建的原因。
  • @Dirk Lachowski:我非常愿意在确认签名后进行自己的参数解析——但我需要原始的、未处理的请求正文来做到这一点。

标签: spring-mvc


【解决方案1】:

目前,我使用 servlet 过滤器作为解决方法 - 它位于过滤器链中的第一个,读取正文内容并将它们放入请求属性中,然后我在控制器中检索该属性。

【讨论】:

    猜你喜欢
    • 2016-11-03
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多