Spring Security环境下跨域addCorsMappings与拦截器冲突导致跨域失效解决方案

2022-07-03 13:36:50

问题分析

【SpringMVC】与权限拦截器冲突导致的Cors跨域设置失效问题

解决方案

    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        List<String> list = new ArrayList<>();
        list.add("*");
        corsConfiguration.setAllowedOrigins(list);
        /*
         请求常用的三种配置,*代表允许所有,当时你也可以自定义属性(比如header只能带什么,只能是post方式等等)
        */
        //放行哪些原始域
        corsConfiguration.addAllowedOrigin("*");
        //放行哪些原始域(头部信息)
        corsConfiguration.addAllowedHeader("*");
        //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
        //不能用*因为跨域访问默认不能获取全部头部信息
        corsConfiguration.addExposedHeader("X-Auth-Token");
        //放行哪些原始域(请求方式)
        corsConfiguration.addAllowedMethod("*");
        //是否发送Cookie信息
        corsConfiguration.setAllowCredentials(true);
        //2.添加映射路径
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", corsConfiguration);
        //3.返回新的CorsFilter.
        return new CorsFilter(source);
    }

    @Autowired
    CorsFilter corsFilter;
    @Override
    protected void configure(HttpSecurity http)throws Exception{
        //CORS过滤器
        http.addFilter(corsFilter);
            
           
    }

参考文章

springboot后端跨域addCorsMappings与拦截器冲突导致跨域失效

【SpringMVC】与权限拦截器冲突导致的Cors跨域设置失效问题

SpringMVC——Spring Security环境下添加自定义过滤器

  • 作者:Starzkg
  • 原文链接:https://shentuzhigang.blog.csdn.net/article/details/114463836
    更新时间:2022-07-03 13:36:50