springboot3 跨域过滤器
时间: 2024-08-27 08:01:13 浏览: 50
Spring Boot 3中的跨域(CORS)过滤器主要用于处理浏览器的同源策略限制,即JavaScript脚本通常只能向与其源相同的服务器发起请求。当你需要在一个前端应用访问另一个域名下的Spring Boot API时,就需要启用跨域。
Spring Boot提供了一个内置的CORS支持,你可以通过`spring.mvc.cors.enabled=true`配置启用它,并在`application.properties`或`application.yml`文件中添加以下配置:
```properties
spring.mvc.cors.allowedOrigins= "*" 或 "http://your-front-end-domain.com"
spring.mvc.cors.allowedMethods= GET, POST, PUT, DELETE, OPTIONS
spring.mvc.cors.allowedHeaders= * // 匹配所有头信息,也可以指定具体的头如"Authorization", "Content-Type"
```
在这里,`allowedOrigins`配置允许的来源,`allowedMethods`指定允许的HTTP方法,`allowedHeaders`则指定了哪些头信息会被允许传递。
如果你需要自定义CORSFilter,可以创建一个实现了`WebMvcConfigurerCors`接口的类,并覆盖其方法来设置更复杂的策略。例如,创建`CorsConfig.java`:
```java
@Configuration
public class CorsConfig implements WebMvcConfigurerCors {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedOrigins("*") // 支持所有来源
.allowedMethods(Arrays.asList("GET", "POST", "PUT", "DELETE"))
.allowedHeaders("*");
}
}
```
这将允许所有的HTTP方法从任何源发起请求,并允许所有头信息。
阅读全文