是,但不容易。
我知道在请求到达控制器中的处理程序方法之前,可以更改请求主体的三个选项。
由于您已经在使用spring-boot,因此选项3(自定义Spring HandlerInterceptor)对您来说似乎是最佳选择。
这里是指向Baeldung文章的链接,该文章涵盖了springHandlerInterceptors。
Baeldung文章不是您问题的完整答案,因为您只能一次阅读InputStrem
返回的内容HttpServletRequest
。
您将需要创建一个包装器类,以扩展HttpServletRequest
和包装您的包装器类中的每个请求,这些包装器类位于您的自定义HandlerInterceptor或自定义的Filter(过滤器可能是这里的方法)中。