spring和springboot配置跨域
时间: 2024-11-08 22:04:46 浏览: 39
Spring 和 Spring Boot 在处理跨域(CORS)请求方面提供了一定的便利。如果你想要允许特定域名或所有来源访问你的 RESTful API,可以在以下几个位置配置 CORS:
1. **Spring MVC** (无 Spring Boot):
在 `WebMvcConfigurer` 接口中添加一个 `addCorsMappings` 方法,示例如下:
```java
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*") // 允许所有源
.allowedMethods("GET", "POST", "PUT", "DELETE") // 允许的HTTP方法
.allowCredentials(true) // 是否允许携带cookie
.maxAge(3600); // 跨域缓存时间(单位秒)
}
```
2. **Spring Boot Actuator**:
如果你想在一个全局的层面上启用 CORS,可以创建一个自定义的 `WebFluxConfigurer` 或 `WebMvcConfigurer` 实现,并覆盖 `addCorsMappings` 方法。
3. **Spring Security**:
在 `SecurityConfiguration` 类中,你可以通过 `http` 对象的 `cors()` 方法添加 CORS 配置:
```java
http.cors().and()
.authorizeRequests();
```
4. **Spring Boot Actuator Management**:
如果你的 API 是为了管理目的而设计的,可以在 `ManagementServerProperties` 中设置 `info.security.cors.enabled` 为 `true`,并指定需要的 CORS 设置。
**相关问题--:**
1. 如何只允许特定域名访问Spring Boot API?
2. 我们如何在Spring MVC中处理预检请求(Preflight Request)?
3. 如何在Spring Boot中关闭默认的CORS配置?
阅读全文