📅  最后修改于: 2023-12-03 15:30:05.898000             🧑  作者: Mango
CORS(跨源资源共享)是一种允许Web页面从不同的源访问资源的机制。Spring框架提供了对CORS的支持。在本文中,我们将介绍如何在Spring中开启CORS。
要开启CORS,您需要在Spring配置文件中添加以下代码段:
<mvc:cors>
<mvc:mapping path="/**"/>
</mvc:cors>
这行代码告诉Spring将CORS
应用于所有的URL
路径。如果您只想应用于特定的路径,您可以在<mvc:mapping path="your-path"/>
中定义路径。
默认情况下,跨源访问是被禁止的。您可以通过以下代码开启访问:
@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://domain.com")
.allowedMethods("PUT", "DELETE")
.allowedHeaders("header1", "header2", "header3")
.exposedHeaders("header1", "header2")
.allowCredentials(false).maxAge(3600);
}
}
在这个例子中,我们允许了http://domain.com
的跨源请求,并且允许PUT
和DELETE
方法。我们还指定了允许的头文件和暴露的头文件,allowCredentials
被设置为false
,表示不允许共享Cookie,过期时间设置为3600
秒。
如果您在Spring应用程序中使用了Spring Security,您可以在WebSecurity
配置中进行配置。以下是一个例子:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.cors().and()
.authorizeRequests()
.antMatchers(HttpMethod.OPTIONS, "/**").permitAll()
.anyRequest().authenticated()
.and()
.httpBasic();
}
}
在这个例子中,我们通过调用cors()
来开启CORS,然后我们允许跨域访问所有的OPTIONS请求(OPTIONS请求是一个特殊的HTTP请求,用于确定支持的方法和头文件)。所有其他的请求都需要进行认证。
在本文中,我们介绍了如何在Spring中开启CORS,并允许跨域访问。我们还提供了一些使用Spring Security的示例代码。CORS是一种重要的Web安全机制,被广泛用于现代Web应用程序开发中。