当前位置 博文首页 > 无限迭代中......:Spring Boot——Spring Security环境下跨域ad

    无限迭代中......:Spring Boot——Spring Security环境下跨域ad

    作者:[db:作者] 时间:2021-07-19 22:28

    问题分析

    ?【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环境下添加自定义过滤器

    cs