我的过滤器检查多部分帖子,并可能在它们到达实际端点(jersey,在我的控制之外)之前拒绝它们。允许随意的多部分解析(如下面的答案所示)解决了这个异常:由于未提供多部件配置,因此无法处理部件
设置该属性时,自定义CommonsMultipartResolver或现有的解析程序正常工作,不会出现错误。但是,在访问/解析内容后,内容会丢失。
我可以使用一个自定义CommonsMultipartResolver,并按照下面的建议处理丢失的信息:但是,我希望有一个更干净的解决方案添加过滤器,而不复制请求。
2条答案
按热度按时间aiazj4mn1#
要启用Tomcat
Context
的allowCasualMultipartParsing
属性,您可以将自定义TomcatServletWebServerFactory
注入到应用程序中(Sping Boot 2):对于Sping Boot 1,工厂类为
TomcatEmbeddedServletContainerFactory
。irtuqstp2#
看看问题的其余部分(或者“我希望有一个更干净的解决方案,添加过滤器,而不复制请求”),我严重怀疑是否有一个。
请求只在网络上发送一次。它包含多部分数据,一旦这些数据被使用(即从流中读取),流现在将如何与完整的数据一起转发到下一个处理器?
我猜通用解决方案就是在那里接收整个数据,决定将其转发到哪里,然后发送整个数据。如果没有将数据存储在中间,它将无法工作,这被称为“复制请求”。