在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中的Interceptor和Handler中生效。
第二种,注入CorsFilter:
@Bean
public FilterRegistrationBean corsFilter()
{
FilterRegistrationBean bean = new FilterRegistrationBean(new MyCorsFilter());
bean.setOrder(0);
return bean;
}它会在Filter中生效。
对于Shiro框架来说,因为它是基于Filter实现的,要处理跨域问题,我们需要使用注入CorsFilter来实现,注意要设置顺序。