SpringCloud Gateway跨域配置代码实例

 更新时间:2019年11月21日 15:15:53   作者:自行车上的程序员  
这篇文章主要介绍了SpringCloud Gateway跨域配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

这篇文章主要介绍了SpringCloud Gateway跨域配置代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

Springboot版本:2.1.8.RELEASE

SpringCloud版本:Greenwich.SR2

yml配置:

spring:
 cloud:
  gateway:
   globalcors:
    cors-configurations:
     '[/**]': 
      # 允许携带认证信息
      # 允许跨域的源(网站域名/ip),设置*为全部
      # 允许跨域请求里的head字段,设置*为全部
      # 允许跨域的method, 默认为GET和OPTIONS,设置*为全部
      # 跨域允许的有效期
      allow-credentials: true
      allowed-origins: 
      - "http://localhost:13009"
      - "http://localhost:13010"
      allowed-headers: "*"
      allowed-methods: 
      - OPTIONS
      - GET
      - POST
      max-age: 3600
      # 允许response的head信息
      # 默认仅允许如下6个:
      #   Cache-Control
      #   Content-Language
      #   Content-Type
      #   Expires
      #   Last-Modified
      #   Pragma
      #exposed-headers:

配置类:org.springframework.cloud.gateway.config.GlobalCorsProperties

网上有很多人说这样配无效,但我测试下来是OK的,如果真的无效,可以手动去装配Cros配置:

package com.longge.gateway.configuration;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
import org.springframework.cloud.gateway.config.GlobalCorsProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

/**
 * @author roger yang
 * @date 11/21/2019
 */
@Configuration
@ConditionalOnBean(GlobalCorsProperties.class)
public class CorsAutoConfiguration {
  @Autowired
  private GlobalCorsProperties globalCorsProperties;
  
  @Bean
  public CorsWebFilter corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
    globalCorsProperties.getCorsConfigurations().forEach((path,corsConfiguration)->source.registerCorsConfiguration(path, corsConfiguration));
    return new CorsWebFilter(source);
  }
}

当然,我们更推荐在Nginx等中间件去做跨域的处理,业务服务就应该关注业务。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • idea设置在包里面在创建一个包方式

    idea设置在包里面在创建一个包方式

    这篇文章主要介绍了idea设置在包里面在创建一个包方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-05-05
  • Java字节码的增强技术

    Java字节码的增强技术

    这篇文章简单介绍了几种Java字节码的增强技术,如ASM、Javassist、Byte Buddy、JVM-SANDBOX,需要的朋友可以参下面文章
    2021-08-08
  • java中使用interrupt通知线程停止详析

    java中使用interrupt通知线程停止详析

    这篇文章主要介绍了java中使用interrupt通知线程停止详析,文章介绍的是使用interrupt来通知线程停止运行,而不是强制停止,详细内容需要的小伙伴可以参考一下
    2022-09-09
  • 如何使用Bean Validation 解决业务中参数校验

    如何使用Bean Validation 解决业务中参数校验

    这篇文章主要介绍了如何使用Bean Validation 解决业务中参数校验操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • 30条Java代码编写经验分享

    30条Java代码编写经验分享

    你知道写好Java代码的30条经验是什么吗?这篇文章主要为大家分享了30条Java代码编写经验技巧,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-02-02
  • Hadoop多Job并行处理的实例详解

    Hadoop多Job并行处理的实例详解

    这篇文章主要介绍了Hadoop多Job并行处理的实例详解的相关资料,希望通过本文能帮助到大家,需要的朋友可以参考下
    2017-10-10
  • Java 根据url下载网络资源

    Java 根据url下载网络资源

    这篇文章主要介绍了Java 根据url下载网络资源的示例代码,帮助大家更好的理解和使用Java,感兴趣的朋友可以了解下
    2020-11-11
  • java并发编程专题(一)----线程基础知识

    java并发编程专题(一)----线程基础知识

    这篇文章主要介绍了java并发编程线程的基础知识,文中讲解非常详细,帮助大家更好的学习JAVA并发编程,感兴趣想学习JAVA的可以了解下
    2020-06-06
  • java Tcp通信客户端与服务器端实例

    java Tcp通信客户端与服务器端实例

    这篇文章主要介绍了java Tcp通信客户端与服务器端,结合完整实例形式详细分析了java基于tcp的网络通信客户端与服务器端具体实现技巧,需要的朋友可以参考下
    2020-01-01
  • java实现计算器加法小程序(图形化界面)

    java实现计算器加法小程序(图形化界面)

    这篇文章主要介绍了Java实现图形化界面的计算器加法小程序,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05

最新评论