springsecurity6 跨域
时间: 2024-09-16 07:06:08 浏览: 89
Spring Security 6 中处理跨域(Cross-Origin Resource Sharing, CORS)主要是为了允许Web应用程序在不同的源之间安全地共享数据。Spring Security提供了一种简单的方式来配置CORS策略,特别是在RESTful API场景下。
在Spring Security 6中,你可以通过`CorsConfigurationSource`接口和`HttpSecurity`的`cors()`方法来启用跨域功能。以下是一个简单的示例:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.security.cors.CorsConfiguration;
import org.springframework.security.cors.UrlBasedCorsConfigurationSource;
@Configuration
public class WebConfig extends WebSecurityConfigurerAdapter {
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*")); // 允许所有来源
configuration.addAllowedMethods(Arrays.asList("*")); // 允许所有HTTP方法
configuration.setAllowCredentials(true); // 允许发送cookie
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration); // 对所有URL应用配置
return source;
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors().and(); // 启用跨域
// ...其他的Spring Security配置
}
}
```
在这个例子中,`allowedOrigins`设置了允许的请求来源,`allowedMethods`指定了允许的HTTP方法。`registerCorsConfiguration`方法将配置应用到指定的路径前缀。
阅读全文