说明
禁止使用GET、POST以外的HTTP方法,如PUT、DELETE、TRACE等
不安全的 HTTP 方法 处理代码
修改 Springboot 内置 Tomcat 的配置
@Configuration
public class TomcatConfig {
@Bean
public ServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcatServletContainerFactory = new TomcatServletWebServerFactory();
tomcatServletContainerFactory.addContextCustomizers(new TomcatContextCustomizer(){
@Override
public void customize(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
SecurityCollection collection = new SecurityCollection();
//http方法
collection.addMethod("PUT");
collection.addMethod("DELETE");
collection.addMethod("HEAD");
collection.addMethod("OPTIONS");
collection.addMethod("TRACE");
//url匹配表达式 所有路径
collection.addPattern("/*");
constraint.addCollection(collection);
//设置以上HTTP方法在指定路径下需要身份验证约束
constraint.setAuthConstraint(true);
context.addConstraint(constraint );
//设置使用httpOnly
context.setUseHttpOnly(true);
}
});
return tomcatServletContainerFactory;
}
}
项目启动可以看到 其他方法已被封禁