Spring关于CORS跨域支持的全局配置(代码实战)

来源:互联网 发布:mysql备份脚本 编辑:程序博客网 时间:2024/05/24 07:03

除了细粒度基于注解的配置,你可能会想定义一些全局CORS的配置。这类似于使用过滤器,但可以在Spring MVC中声明,并结合细粒度@CrossOrigin配置。默认情况下所有的域名和GET、HEAD和POST方法都是允许的。

基于JAVA的配置

看下面例子:

@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter {    @Override    public void addCorsMappings(CorsRegistry registry) {        registry.addMapping("/**");    }}
您可以轻松地更改任何属性,以及配置适用于特定的路径模式的CORS:
@Configuration@EnableWebMvcpublic class WebConfig extends WebMvcConfigurerAdapter {    @Override    public void addCorsMappings(CorsRegistry registry) {        registry.addMapping("/api/**")            .allowedOrigins("http://domain2.com")            .allowedMethods("PUT", "DELETE")            .allowedHeaders("header1", "header2", "header3")            .exposedHeaders("header1", "header2")            .allowCredentials(false).maxAge(3600);    }}

如果你使用Spring Boot,你可以通过这种方式方便的进行配置。

基于XML的配置

<mvc:cors>    <mvc:mapping path="/**" /></mvc:cors>

这个配置和上面Java方式的第一种作用一样。

同样,你可以做更复杂的配置:

<mvc:cors>    <mvc:mapping path="/api/**"        allowed-origins="http://domain1.com, http://domain2.com"        allowed-methods="GET, PUT"        allowed-headers="header1, header2, header3"        exposed-headers="header1, header2" allow-credentials="false"        max-age="123" />    <mvc:mapping path="/resources/**"        allowed-origins="http://test.com" /></mvc:cors>






原创粉丝点击