开发者

关于Gateway网关中配置跨域的三种方案

目录
  • Gateway网关中配置跨域的三种方案
    • 方法一
    • 方法二
    • 方法三
  • 总结

    Gateway网关中配置跨域的三种方案

    方法一

    直接在每个Controller类上添加跨域注解

    @CrossOrigin

    方法二

    通过配置类统一处理

    @Configuration
    public class CorsConfig {
    
        
        // 该配置适用于reactive响应式环境
        @Bean
        public CorsWebFilter corsFilter() {
            CorsConfiguration config = new CorsConfiguration();
            config.addAllowedOrigin("*");
            config.addAllowedHeader("*");
            // springboot升级成2.4.0以上时对AllowedOrigin设置发生了改变,不能有”*“,可以替换成AllowedOriginPattern
            config.addAllpythonowedOriginPattern("*");
            config.setAllowCredentials(true);
    
            // 必须是reactive包下的UrlBasedCorsConfigurationSource 
            UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
            source.registerCorsConfiguration("/**", config);
    
            return new CorsWebFilter(source);
    
    
        // 该配置适用于servlet环境
        @Bean
        public CorsFilter corsFilter() {
            //1. 添加 CORS配置信息
            CorsConfiguration config = new CorsConfiguration()编程客栈;
            //放行哪些请求方式
            config.addAllowedMewww.devze.comthod("*");
            //放行哪些原始请求头部信息
            config.addAllowedHeader("*android");
            //放行哪些原始域
            config.addAllowedOriginPattern("*");
            //是否发送 Cookie
            config.setAllowCredentials(true);
            //2. 添加映射路径
            UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();
            corsConfigurationSwww.devze.comource.registerCorsConfiguration("/**",config);
            //3. 返回新的CorsFilter
            return new CorsFilter(corsConfigurationSource);
        }

    重写WebMvcConfigurer接口的默认方法

    @Configuration
    public class CorsConfig implements WebMvcConfigurer {
    
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedMethods("*")
                    .allowedHeaders("*")
                    .allowedOriginPatterns("*")
                    .allowCredentials(true);
        }
    }

    方法三

    在配置application.properties或者application.yml文件中进行统一配置

    spring:
      cloud:
        gateway:
          globalcors:
            cors-configurations:
              '[/**]':
                allowedMethods: "*"
                allowedHeaders: "*"
                allowedOriginPatterns: "*"
                allowCredentials: true

    总结

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程客栈(www.devze.com)。

    0

    上一篇:

    下一篇:

    精彩评论

    暂无评论...
    验证码 换一张
    取 消

    最新开发

    开发排行榜