Spring security如何设置跨域
时间: 2023-07-07 09:06:09 浏览: 108
Spring Security本身并不处理跨域问题,但可以通过Spring框架提供的CorsFilter来解决。CorsFilter可以在Spring Security的配置中进行配置,示例代码如下:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
// 配置跨域
http.addFilterBefore(corsFilter(), ChannelProcessingFilter.class)
.csrf().disable()
...
}
@Bean
public CorsFilter corsFilter() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", corsConfiguration);
return new CorsFilter(source);
}
}
```
上述代码中,我们通过添加`CorsFilter`来实现跨域,`CorsConfiguration`用于设置跨域请求的允许来源、请求头、请求方法等,`UrlBasedCorsConfigurationSource`用于指定哪些URL需要跨域支持。在上述代码中,我们允许所有来源、请求头、请求方法,并开启允许携带凭证(例如cookie或授权头)。
阅读全文