Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我遇到了这里描述的问题,但我不清楚如何解决它。
问题是我有一个 AuthenticationProvider 必须读取请求的正文。但是,当我的控制器方法想要通过 @RequestMapping 使用该数据时,它是空的,因为 Provider 已经读取了 inputStream。
有没有办法从支持标记/重置的 Request 获取 inputReader,以便我的提供者可以在进行身份验证后简单地将流回滚到其初始状态?过滤器的默认行为是对请求对象的破坏性修改,这似乎很疯狂。
Provider 应该只在特定情况下被触发,所以它不应该影响你的整个应用程序。但是,如果您需要提供者处理的请求中的正文,那么您仍然有一个解决方法:
Filter
getInputStream()
ByteArrayInputStream
springAbstractRequestLoggingFilter做了类似的事情并且有一个示例包装器,你可以检查它。
AbstractRequestLoggingFilter