【问题标题】:Switching to JavaConfig multipartResolver not working切换到 JavaConfig multipartResolver 不起作用
【发布时间】:2015-12-05 01:44:47
【问题描述】:

我们正在切换到 JavaConfig,但在让分段上传正常工作时遇到问题

org.springframework.web.multipart.MultipartException: The current request is not a multipart request

我们的配置仍然使用security.xml,我尝试了一些建议

MultipartResolver and AbstractAnnotationConfigDispatcherServletInitializer

How to nicely handle file upload MaxUploadSizeExceededException with Spring Security

但是,它不起作用。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = {"nl.project.controller"},includeFilters={
@ComponentScan.Filter(type=FilterType.ANNOTATION,value=Controller.class),
@ComponentScan.Filter(type=FilterType.ANNOTATION,value=RestController.class)
})
public class ServletConfig extends WebMvcConfigurerAdapter{

@Bean
public CommonsMultipartResolver filterMultipartResolver(){
    CommonsMultipartResolver resolver = new CommonsMultipartResolver();
    resolver.setMaxUploadSize(5000000);
    resolver.setMaxInMemorySize(10000);
    resolver.setDefaultEncoding("utf-8");
    return resolver;
}

任何建议将不胜感激!

【问题讨论】:

    标签: spring-mvc spring-security


    【解决方案1】:

    如果您发布了安全配置和完整的堆栈跟踪,会更容易回答。

    但是,我猜您在 CSRF 保护方面遇到了问题。您需要阅读参考资料中的CSRF - Multipart (file upload) 部分。

    如果这没有帮助,请发布您的完整堆栈跟踪和安全配置。

    【讨论】:

    • CSRF 未启用。没有堆栈跟踪。我正在使用弹簧安全 3.2.9。它似乎并没有“拿起”WebApplicationInitializer。我感觉这与 Sysdeo 的使用有关
    • 这似乎是一个堆栈跟踪:“org.springframework.web.multipart.MultipartException:当前请求不是多部分请求”
    • 该死。我问错问题了。这个我已经解决了。这是一个兔子洞风格的问题。迁移到 JavaConfig 后,我没有意识到我的一些“@Value”引用没有得到解决。我开始改变其他的东西,比如启用 Tomcat7 Multipart 等,即使在修复了“@Value”问题之后,所有这些都会导致失败。
    猜你喜欢
    • 1970-01-01
    • 2019-07-19
    • 2017-09-03
    • 2013-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 2017-03-16
    相关资源
    最近更新 更多