gpt4 book ai didi

javascript - Spring CSRF 多部分不工作

转载 作者:行者123 更新时间:2023-11-28 04:35:55 24 4
gpt4 key购买 nike

Spring CSRF 不适用于带有文件上传的多部分表单。对于其他请求来说它工作得很好。我的 web.xml 看起来像这样 -

<filter>
<filter-name>MultipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>MultipartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...
some more filters
...
<filter>
<filter-name>csrfFilter</filter-name>
<filter-class>org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>csrfFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>

我已经在我的 appcontext-servlet.xml 中定义了这个 bean -

<bean id="filterMultipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="100000000" />
</bean>

我还定义了 csrfFilter。定义了 filterMultipartResolver bean 后,我被重定向到默认的 404 页面。如果没有 bean,我会收到一个错误页面,提示我发送了空 token 。当我在 Chrome 开发人员工具中看到请求时,它包含以下部分以及表单的其余部分( token 已附加两次,因为我使用 JavaScript 在页面加载时执行一次,可能在发送时执行一次。我是什么失踪了?

------WebKitFormBoundaryHMYSQ8eg6FXpxqDA内容处置:表单数据;名称=“_csrf”

16a983e0-a115-43d9-aa72-09c9576d53df------WebKitFormBoundaryHMYSQ8eg6FXpxqDA内容处置:表单数据;名称=“_csrf”

16a983e0-a115-43d9-aa72-09c9576d53df

最佳答案

我不知道您是否已经解决了这个问题,但即使我也遇到了与您面临的相同问题,包括类似的代码。我的唯一区别是:

<filter>
<display-name>springMultipartFilter</display-name>
<filter-name>springMultipartFilter</filter-name>
<filter-class>org.springframework.web.multipart.support.MultipartFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>springMultipartFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter-mapping>
<filter-name>csrfFilter</filter-name>
<servlet-name>customApplication</servlet-name>
</filter-mapping>
<servlet>
<servlet-name>customApplication</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>2</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>customApplication</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>

此外,这里描述的帖子也可以帮助那些遇到同样问题的人: Spring Security 3.2 CSRF support for multipart requests

关于javascript - Spring CSRF 多部分不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44207882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com