springsecurity解决cors跨域
时间: 2023-09-12 08:07:08 浏览: 87
在 Spring Security 中,可以使用 `CorsConfigurationSource` 接口来配置 CORS 跨域请求。下面是一个简单的示例:
```java
@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
// ...
.cors().and()
// ...
}
@Bean
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("GET","POST", "OPTIONS", "DELETE", "PUT"));
configuration.setAllowedHeaders(Arrays.asList("Authorization", "Content-Type"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
```
上面的示例中,我们通过 `cors()` 方法来启用 CORS,然后通过 `corsConfigurationSource()` 方法来配置 CORS。在配置中,我们设置 `allowedOrigins`、`allowedMethods`、`allowedHeaders` 分别表示允许跨域请求的来源、方法和头部信息。
需要注意的是,在上面的示例中,我们设置了 `allowedOrigins` 为 `"*"`,表示允许来自任意来源的跨域请求。在实际应用中,为了安全起见,应该根据实际情况设置允许的来源,避免恶意攻击。
阅读全文