这个问题与此url中的问题有关,Spring Security 3.2 CSRF支持多部分请求
我尝试了完全相同的设置以及要点,但我无法让它工作,除非我在url中有_csrf令牌。我在表单正文中将其作为隐藏字段,并在安全过滤器之前指定了过滤器,但没有任何乐趣,每次使用无效csrf令牌的调试日志消息时都会失败
在此方面的任何帮助都将不胜感激
干杯Damien
如果没有要点,很难找到,但我终于明白了!
事实上,它与Spring Security无关。真正的问题只出在SpringFramework的多部分配置中。但正因为如此,请求似乎根本没有参数(既不是_csrf
,也不是file
),第一个检测到它的是CsrfFilter
。我删除了所有关于html" target="_blank">安全的内容,错误是请求的参数文件不存在
(或者类似的东西...)
如Spring Framework手册所述,multipart可以通过两种方式进行处理:
>
使用servlet 3.0配置
第二个问题是您忘记在pom.xml
中添加对Apache公共文件上传的依赖。
因此,您必须首先在pom中添加这种依赖性。xml
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
接下来,必须从mvc dispatcher servlet中删除filterMultipartResolver bean。xml,并在根应用程序上下文中声明它。作为一个快速而肮脏的修复,您可以将其添加到spring security中。xml:
<beans:bean id="filterMultipartResolver"
class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="100000000" />
</beans:bean>
您只需添加一个
<servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<multipart-config>
<!--location>/tmp</location-->
<max-file-size>1000000</max-file-size>
</multipart-config>
</servlet>
我们在应用程序中使用Spring Security性已有几年了。上周,我们将Spring Security从3.1.4版升级到3.2.0版。升级进行得很顺利,升级后我们没有发现任何错误。 在浏览Spring Security 3.2.0文档时,我们发现了围绕CSRF保护和安全标头的新增功能。我们遵循Spring Security 3.2.0文档中的说明,为受保护的资源启用CSRF保护。在我们的应用
问题内容: 几年来我们一直在我们的应用程序中使用Spring Security。上周,我们将Spring Security从3.1.4版本升级到了3.2.0。升级进行得很好,并且升级后我们没有发现任何错误。 在浏览Spring Security 3.2.0文档时,我们发现了CSRF保护和安全标头周围的新增功能。我们按照Spring Security 3.2.0文档中的说明为受保护的资源启用CSRF
问题内容: 我有一个API端点,必须向其发送多部分HTTP请求,该请求由两部分组成(文件系统文件)和(JSON对象)。 经过一些研究,我发现了如何在AngularJS中执行多部分请求: 1) 该函数最初具有以下形式: 此实现的结果是,请求的各个部分没有设置。 Blob ,对象看起来像这样(有点混乱,基本上第一部分是of ,第二个): 第二种方法为请求的每个部分设置了正确的内容,但没有为部分设置任何
当我尝试上传一个文件和标题时,我得到以下异常。我正在将Content-Type头设置为multipart/form-data。 我如何在Spring Security后面做文件上传?这个请求似乎从未被转换成MultiPartHttpServerRequest,所以它不起作用? 如果更改方法签名以采用@RequestParam MultipartFile,则会出现如下异常: ...但我在XML中配置
问题内容: 我用, Spring Framework 4.0.0发布(GA) Spring Security 3.2.0发布(GA) Struts 2.3.16 在其中,我使用内置的安全令牌来防御CSRF攻击。 Struts表单如下所示。 生成的HTML代码如下。 除非请求是多部分的,否则在此情况下,请求以状态码403结束,这可以很好地工作。 HTTP状态 403-在请求参数标头’X-CSRF-T
null 其中,我使用内置的安全令牌来防范CSRF攻击。 Struts表单如下所示。 生成的HTML代码如下所示。 文件如下所示。 那么,当请求是多部分的时候,在哪里寻找这个令牌呢?(这应该与Struts无关。) 的实现可以在前面的问题中找到,如果需要的话。