我们已经将Spring Security与我们的应用程序一起使用了几年.上周我们将Spring Security从3.1.4升级到3.2.0.升级很顺利,我们在升级后没有发现任何错误.
在查看Spring Security 3.2.0文档时,我们遇到了围绕CSRF保护和安全头的新增功能.我们按照Spring Security 3.2.0文档中的说明为受保护资源启用CSRF保护.它适用于常规表单,但不适用于我们的应用程序中的多部分表单.在表单提交时,CsrfFilter引发拒绝访问错误,引用请求中缺少CSRF令牌(通过DEBUG日志确定).我们尝试使用Spring Security文档中建议的第一个选项来使CSRF保护与多部分表单一起工作.我们不想使用第二个建议的选项,因为它通过URL泄漏CSRF令牌并带来安全风险.
基于文档的配置的相关部分在Github上作为Gist提供.我们使用的是Spring 4.0.0版.
请注意,我们已尝试以下变体但未成功:
MultipartFilter进入web.xml.MultipartFilterin 设置解析器bean名称web.xml.filterMultipartResolver在webContext.xml.更新:我已经确认即使使用单页示例应用程序,记录的行为也不起作用.任何人都可以确认记录的行为按预期工作吗?是否有可以使用的示例工作应用程序?