作为参考,我们有两个选项可以让Multipart与Spring Security一起工作:
对于第一种选择,我尝试了以下方法:
public class SecurityApplicationInitializer extends AbstractSecurityWebApplicationInitializer {
@Override
protected void beforeSpringSecurityFilterChain(ServletContext servletContext) {
insertFilters(servletContext, new MultipartFilter());
}
}
>
在application.properties中更改Spring安全过滤器顺序spring.security.filter.order=5
然后添加FilterRegistrationBean
@Bean
@Order(0)
public FilterRegistrationBean registerMultipartFilter() {
FilterRegistrationBean reg = new FilterRegistrationBean<>(new MultipartFilter());
reg.setOrder(1);
return reg;
}
不幸的是,它们都不起作用,我试图禁用csrf保护,它按预期工作,那么我的配置有什么问题?
事实证明Spring Boot已经为我们做了很多事情。问题根本不是MultipartFilter。使用Spring Boot时,我们甚至不需要为CSRF保护设置MultipartFilter。
真正的问题是我的胸腺形式:
<form method="POST" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="Upload"/>
如果没有th: action
,Spring引导不会自动为我们插入隐藏的csrf令牌。
<form th:action="''" method="POST" enctype="multipart/form-data">
<input type="file" name="file"/>
<input type="submit" value="Upload"/>
</form>
我是通过阅读Spring Boot in Action这本书开始学习Spring Boot的,我正在学习这本书中的示例,试图自己运行它们,但我在使用时遇到了问题。 我已经翻遍了这一章,寻找我可能的不匹配。然而,它就是不起作用。 这个项目应该是一个简单的阅读清单。 代码如下: 读者@实体: Jpa接口:
问题内容: 我正在设置信用卡处理程序,需要对CURL使用替代方法。当我使用测试服务器(未调用SSL URL)时,以下代码运行良好,但是现在当我在使用HTTPS的工作服务器上对其进行测试时,它失败,并显示错误消息“无法打开流”。 问题答案: 请尝试以下脚本,以查看您的php脚本是否有https包装器。 输出应该是这样的
问题内容: 我将使用IntelliJ Community Edition的Git版本控制来创建我打算开发的程序的分支。我正在努力使自己适应其功能,并且遇到了障碍。 我遵循网页 http://wiki.jetbrains.net/intellij/Using_Git_Locally上的说明,尽管我按其要求进行操作,但是当我到达Image5时,在Default(默认)下找到了一个空列表。 我认为这可能
问题内容: 我知道这是一个基本问题,但是如果这个问题太愚蠢了,我似乎找不到答案,我很抱歉,但是我们开始: 我应该使用SQL Server(到目前为止没有问题)和Java(喜欢Java,这里也没问题),但是现在:我应该怎么做才能使组合起作用?我得到了: JRE 1.6 和 sqljdbc4.jar …在将sqljdbc4.jar放入我的类路径之前,我已经在其中添加了sqljdbc.jar并通过测试程
问题内容: 我正在尝试使用lodash 以这种方式在指令中使用它: 存在: 但是不起作用,因此,没有任何 重复 。如果我将指令更改为它将起作用。 通过已经包含在之前 。我该如何运作? 问题答案: 我更喜欢在全局范围内引入“ _”并且可以注入以进行测试。
问题内容: 我习惯在普通的log4j上使用。现在,我切换到,无法使附加程序正常工作。 下面的附加程序可以正常工作。但是永远不会创建的日志文件。为什么? 问题答案: 该标记缺少属性。