我正在尝试使用 application/x-www-form-urlencoded media-type 读取 Http post 请求的正文,但我尝试的所有方法均未成功。
我需要通过比较哈希(作为标头发布)和我使用请求正文计算的哈希来验证请求在通信期间没有更改。
问题是到达我的服务器的请求没有任何正文,只有 parameterMap。我尝试通过使用过滤器(实际上我用它来缓存请求的主体)在早期阶段拦截请求,但它已经不仅仅是参数映射的主体。
我试图处理这个映射以获得一个字符串来计算哈希但是websphere重新排序参数并且哈希不匹配,所以我认为最好的解决方案是在被解析为parameterMap之前读取正文时是纯文本
在我的日志中我可以看到这一点,所以我很确定请求有一个正文:
****** METHOD: POST
****** URI: https://localhost/echo
****** ENTITY <echo2=c&echo2=d&aa=e&aa=f&echo=a&echo=b&echo=a,{HEADERS...}>
Writing [echo2=c&echo2=d&aa=e&aa=f&echo=a&echo=b&echo=a] as "application/x-www-form-urlencoded" using [org.springframework.http.converter.StringHttpMessageConverter@a7c98f]