Spring Security6配置跨域
时间: 2023-08-26 11:06:22 浏览: 725
在 Spring Security 6 中配置跨域,你可以使用以下步骤:
1. 添加依赖:在 pom.xml 文件中添加以下依赖:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
```
2. 创建一个配置类:创建一个名为 `WebSecurityConfig` 的配置类,并使用 `@EnableWebSecurity` 注解标记它。
3. 配置跨域:在 `WebSecurityConfig` 类中重写 `configure(HttpSecurity http)` 方法,并使用 `http.cors()` 方法启用跨域配置。
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors();
// 其他配置...
}
// 其他配置...
}
```
4. 创建跨域配置类:创建一个名为 `CorsConfig` 的配置类,并使用 `@Configuration` 注解标记它。在该类中,你可以配置允许的来源、方法和头信息等。
```java
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedOrigin("*"); // 允许所有来源
config.addAllowedMethod("*"); // 允许所有方法
config.addAllowedHeader("*"); // 允许所有头信息
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}
```
5. 启用跨域过滤器:在 `WebSecurityConfig` 类中注册 `CorsConfig` 配置类。
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private CorsConfig corsConfig;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.cors();
// 其他配置...
}
@Override
public void configure(WebSecurity web) throws Exception {
web.ignoring().antMatchers("/resources/**"); // 忽略静态资源的拦截
}
@Override
protected void configure(AuthenticationManagerBuilder auth) throws Exception {
// 配置用户认证逻辑
}
@Override
protected void configure(HttpSecurity http) throws Exception {
http.addFilterBefore(corsConfig.corsFilter(), ChannelProcessingFilter.class);
// 其他配置...
}
// 其他配置...
}
```
这样就完成了 Spring Security 6 的跨域配置。你可以根据实际需求修改跨域配置类中的允许来源、方法和头信息等。
阅读全文