起因:
安全组针对接口测试提出的要求,需要关闭不安全的请求方法,例如put、delete等方法,防止服务端资源被恶意篡改。
用过springMvc
都知道可以使用@PostMapping
、@GetMapping
等这种注解限定单个接口方法类型,或者是在@RequestMapping
中指定method属性。这种方式比较麻烦,那么有没有比较通用的方法,通过查阅相关资料,答案是肯定的。
tomcat传统形式通过配置web.xml达到禁止不安全的http方法
<security-constraint>
<web-resource-collection>
<url-pattern>/*</url-pattern>
<http-method>PUT</http-method>
<http-method>DELETE</http-method>
<http-method>HEAD</http-method>
<http-method>OPTIONS</http-method>
<http-method>TRACE</http-method>
</web-resource-collection>
<auth-constraint>
</auth-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
Spring boot使用内置tomcat,2.0版本以前使用如下形式
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {// 1
protected void postProcessContext(Context context) {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
collection.addMethod("HEAD");
collection.addMethod("PUT");
collection.addMethod("DELETE");
collection.addMethod("OPTIONS");
collection.addMethod("TRACE");
collection.addMethod("COPY");
collection.addMethod("SEARCH");
collection.addMethod("PROPFIND");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
}
};
2.0版本使用以下形式
@Bean
public ConfigurableServletWebServerFactory configurableServletWebServerFactory() {
TomcatServletWebServerFactory factory = new TomcatServletWebServerFactory();
factory.addContextCustomizers(context -> {
SecurityConstraint securityConstraint = new SecurityConstraint();
securityConstraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
collection.addMethod("HEAD");
collection.addMethod("PUT");
collection.addMethod("DELETE");
collection.addMethod("OPTIONS");
collection.addMethod("TRACE");
collection.addMethod("COPY");
collection.addMethod("SEARCH");
collection.addMethod("PROPFIND");
securityConstraint.addCollection(collection);
context.addConstraint(securityConstraint);
});
return factory;
}
相关推荐
server.tomcat.accept-count=200 # 请求队列最大长度 server.tomcat.connection-timeout=30000 # 连接超时时间,单位毫秒 server.tomcat.keep-alive-timeout=60000 # keep-alive超时时间,单位毫秒 ``` 在进行...
1. **禁用内置Tomcat容器**: Spring Boot默认包含了一个内嵌的Tomcat服务器,这使得开发过程非常方便。然而,当你需要将应用部署到外部Tomcat时,必须告诉Spring Boot不要使用内置的Tomcat。通过在`pom.xml`中将`...
随着Spring项目的发展,其复杂性逐渐增加,SpringBoot应运而生,它内置了许多功能,减少了繁琐的配置和依赖管理,使得开发更加高效。 SpringBoot的优势包括: 1. **减少开发时间**:SpringBoot通过预配置各种组件,...
SpringBoot还提供了一些内置的开发工具,例如SpringBoot DevTools。这些工具可以加速开发过程,提供自动重启以及LiveReload等特性。使用DevTools可以实现代码更改后的快速应用重启,减少开发中的等待时间。 为了...
- **嵌入式服务器支持**:SpringBoot内置了Tomcat、Jetty等服务器的支持,开发者无需额外配置服务器即可运行应用。 #### 三、Vue框架简介及其优势 Vue.js是一个用于构建用户界面的渐进式框架,其主要特点包括: -...
毕业设计项目,将ssm技术切换为springboot,使用内置的tomcat即可运行项目。 管理系统 url: http://localhost:8080/managerLoginPage user: admin password: 123 用户门户网站 url: http://localhost:8080/user ...
随着Spring框架的发展,其复杂性逐渐增加,SpringBoot应运而生,它通过自动化配置和内置服务器等功能,减少了开发者在创建新项目时的繁琐工作。 SpringBoot的主要优点包括: 1. **开发效率提升**:通过预设配置,...
Actuator 的安全性可以通过设置management.security.enabled 属性来禁用或启用。 对于第三方项目的整合,如 WebSockets 提供实时通信,Spring Data 支持多种数据库操作,Spring Batch 处理批量数据,FreeMarker 是...
- **SpringBoot框架**:利用SpringBoot可以快速搭建Web应用,它内置了Tomcat等容器,简化了配置过程,支持自动配置等功能,大大提高了开发效率。 - **MyBatis**:一个支持普通SQL查询、存储过程及高级映射的优秀持久...
此外,SpringBoot内置了Tomcat服务器,使得开发和部署更为便捷。 - **starter-poms**:SpringBoot的依赖管理基于“Starter POMs”,如`spring-boot-starter-web`用于Web开发,`spring-boot-starter-data-jpa`用于...
Spring Boot的设计理念是"约定优于配置",它默认使用内建的Web服务器,但有时根据项目需求,我们可能需要切换到不同的内置服务器或者完全禁用内置服务器,转而使用外部服务器。下面我们将详细探讨如何进行Spring ...
4. **内置服务器**:Spring Boot 内置了 Tomcat 等服务器,无需额外安装,可以直接运行应用。 5. **环境感知配置**:通过 `spring.profiles.active` 属性,可以轻松切换不同环境下的配置,如开发、测试和生产环境。 ...
该框架内置了Tomcat、Jetty或Undertow作为嵌入式容器,支持自动配置,简化了开发过程。 ##### 5.2 MySQL数据库 MySQL是一款开源关系型数据库管理系统,以其高性能、稳定性和安全性著称。在本系统中,MySQL被用来...
通过内置Tomcat、自动配置、起步依赖等功能,SpringBoot极大地提高了开发效率,使得开发者可以专注于业务逻辑的实现,而无需关心底层基础设施的配置。 二、秒杀系统架构设计 1. 前端:利用JavaScript进行页面交互,...
15. **集成 Servlet**:Spring Boot 内置了 Tomcat 或 Jetty 服务器,可以直接注册 Servlet、Filter 和 Listener。学习如何编写和配置 Servlet,以及如何处理 HTTP 请求。 16. **集成 Filter 和 Listener**:Filter...
1. 技术栈选择:项目采用Spring Boot作为主要开发框架,利用其内置的Tomcat服务器和自动配置功能,简化了传统Spring应用的初始化过程。同时,结合Spring MVC处理HTTP请求,以及Spring Data JPA进行数据库操作,大大...
- 嵌入式服务器:Spring Boot提供了一种简单的方式来集成如Tomcat、Jetty等嵌入式Servlet容器,无需单独部署WAR文件。 - 开箱即用:Spring Boot自带了很多默认配置,开发者可以直接使用这些配置,减少重复性工作。...
将ssm技术切换为springboot,使用内置的tomcat即可运行项目。 管理系统 - url: http://localhost:8080/managerLoginPage - user: admin password: 123 用户门户网站 - url: http://localhost:8080/user - user: ...
- **嵌入式 servlet 容器支持**:Spring Boot 内置了对 Tomcat、Jetty 和 Undertow 等容器的支持。 - **Security**: - **OAuth2**:Spring Boot 支持 OAuth2 协议,可用于构建安全的应用程序。 - **UserInfo 中...