Spring security 文件上传与Spring安全
基于,我设置了一个多部分文件管理器,如下所示: @订单1 公共类SecurityWebAppInitializer 扩展AbstractSecurityWebApplicationInitializer{ @凌驾 SpringSecurityFilterChainServletContext之前的受保护无效servletContext{ insertFiltersservletContext,新的MultipartFilter; } 在文件上传表单中,我可以在HTML文件中看到具有NOTNULL值的CSRF输入,请参见下面的代码 要上载的文件: 姓名: 按这里上传文件! 提交表单后,我得到一个错误 HTTP状态403-在请求参数“\u CSRF”或标头“X-CSRF-Token”上发现无效的CSRF令牌“null” 类型状态报告 在请求参数“\u CSRF”或标头“X-CSRF-Token”上发现消息无效的CSRF令牌“null” 说明已禁止访问指定的资源Spring security 文件上传与Spring安全,spring-security,Spring Security,基于,我设置了一个多部分文件管理器,如下所示: @订单1 公共类SecurityWebAppInitializer 扩展AbstractSecurityWebApplicationInitializer{ @凌驾 SpringSecurityFilterChainServletContext之前的受保护无效servletContext{ insertFiltersservletContext,新的MultipartFilter; } 在文件上传表单中,我可以在HTML文件中看到具有NOTNULL
这里缺少什么?更改应用程序的Java配置后,此问题得到解决。以下是这些更改 在AbstractAnnotationConfigDispatchersServletInitializer类中,我在getServletFilters方法中添加了MultipartFilter,并在customizeRegistrationServletRegistration.Dynamic registration方法中使用MultipartConfigElement设置MultipartConfig。最初在WebMVCConfigureAdapter类中定义的MutlipPartConfigElement将被删除。并且类中定义的MultipartResolver保持不变
Java配置是基于应用程序的原始XML配置设置的。基于这种情况,这种方法并不总是有效。您是否有多部分解析器?是的,我有。为了验证它是否有任何区别,我对MultipartResover进行了注释,得到了相同的原因。我看不出解析器定义之间的关系使用空CSRF令牌。因此,请告诉我。如果没有正确配置的多部分解析程序,Spring Security无法在多部分/表单数据中找到CSRF令牌。您的多部分解析程序bean定义?感谢您的提示。问题已解决。有关详细信息,请参阅我对自己问题的回答。您可能知道哪些更改会产生影响。