Spring跨域的设置方式

浏览:1036 发布日期:2024-03-22 11:30:11

在Spring中配置Cors,通常有两种方式:

第一种,实现WebMvcConfigurer#addCorsMappings方法:

@Configuration
public class WebMvcConfigApp implements WebMvcConfigurer
{
    @Override
    public void addCorsMappings(CorsRegistry registry)
    {
        registry.addMapping("/**")
                .allowedOrigins("http://localhost:8733")
                .allowedMethods("GET", "POST", "PUT", "DELETE")
                .allowedHeaders("*")
                .allowCredentials(true).maxAge(3600);
    }
}

它只会在Spring中的InterceptorHandler中生效。

第二种,注入CorsFilter

@Bean
public FilterRegistrationBean corsFilter()
{
    FilterRegistrationBean bean = new FilterRegistrationBean(new MyCorsFilter());
    bean.setOrder(0);

    return bean;
}

它会在Filter中生效。

对于Shiro框架来说,因为它是基于Filter实现的,要处理跨域问题,我们需要使用注入CorsFilter来实现,注意要设置顺序。