首页 > 其他分享 >Gateway过滤器执行顺序以及跨域问题

Gateway过滤器执行顺序以及跨域问题

时间:2024-10-15 18:18:15浏览次数:10  
标签:顺序 请求 Gateway 过滤器 order 路由 跨域

执行顺序

请求进入网关会碰到三类过滤器当前路由的过滤器、DefaultFilter、GlobalFilter

请求路由后,会将当前路由过滤器和DefaultFilter、GlobalFilter,合并到一个过滤器链(集合)中,排序后依次执行每个过滤器

  • 每一个过滤器都必须指定一个int类型的order值,order值越小,优先级越高,执行顺序越靠前。
  • GlobalFilter通过实现Ordered接口,或者添加@Order注解来指定order值,由我们自己指定
  • 路由过滤器和defaultFilter的order由Spring指定,默认是按照声明顺序从1递增。
  • 当过滤器的order值一样时,会按照 defaultFilter > 路由过滤器 > GlobalFilter的顺序执行。

总结

  • 路由过滤器、defaultFilter、全局过滤器的执行顺序?
  • order值越小,优先级越高
  • 当order值一样时,顺序是defaultFilter最先,然后是局部的路由过滤器,最后是全局过滤器

什么是跨域?

跨域:域名不一致就是跨域,主要包括:

  • 域名不同: www.taobao.com 和 www.taobao.org 和 www.jd.com 和 miaosha.jd.com
  • 域名相同,端口不同:localhost:8080和localhost8081

跨域问题:浏览器禁止请求的发起者与服务端发生跨域ajax请求,请求被浏览器拦截的问题

解决方案:CORS

解决方案

网关处理跨域采用的同样是CORS方案,并且只需要简单配置即可实现

spring:
  cloud:
   gateway:
    globalcors: # 全局的跨域处理
     add-to-simple-url-handler-mapping: true # 解决options请求被拦截问题
     cors-configurations:
      '[/**]':
      allowedOrigins: # 允许哪些网站的跨域请求
        - "http://localhost:8090"
        - "http://www.test.com"
      allowedMethods: # 允许的跨域ajax的请求方式
        - "GET"
        - "POST"
        - "DELETE"
        - "PUT"
        - "OPTIONS"
      allowedHeaders: "*" # 允许在请求中携带的头信息
      allowCredentials: true # 是否允许携带cookie
      maxAge: 360000 # 这次跨域检测的有效期

标签:顺序,请求,Gateway,过滤器,order,路由,跨域
From: https://blog.csdn.net/qq_22554999/article/details/142862134

相关文章

  • 过滤器拦截器拦截了request后,controller的@RequestBody 无法获取request内容,报错 Requ
    SpringMVC的拦截器、过滤器、Controller之间的关系 众所周知所有的post请求中的body参数是已流形式存在的,而流数据只能读取一次(为啥看这里),如果在拦截器和过滤器中需要对post参数进行处理的话,就会报Requiredrequestbodyismissing异常。既然知道原因,那只要能将流保存起来......
  • 微服务03 微服务sentinel, springcloudgateway
    6Sentinel6.1Sentinel介绍和工作机制6.1.1微服务流量治理组件介绍随着微服务的流行,服务和服务之间的调用导致服务的稳定性问题变得越来越重要。雪崩问题:微服务调用链路中的某个服务故障,引起整个链路中的所有微服务都不可用,即雪崩。解决雪崩问题的常见方式有四种:1......
  • 如何设置 CORS允许跨域
    设置CORS(跨源资源共享,Cross-OriginResourceSharing)允许跨域访问是Web开发中常见的需求之一。CORS是一种安全机制,由浏览器实施,用于限制一个源(协议+域名+端口)上的网页脚本与另一个源上的资源交互的能力。下面是如何在服务器端设置CORS以允许跨域访问的一些常见方法。1.Nod......
  • 过滤器和拦截器的区别是什么?
    首先,过滤器和拦截器都可以在请求的过程中插入一手,也可以进行拦腰截断。请求过程:当一个请求进来,先交给Web服务器提供的过滤器,来到Servlet,同时会有一个叫做DispatcherServlet的Servlet进行执行,在DispatcherServlet中就会调用我们的拦截器,再由DispatcherServlet分发给对应的Contro......
  • 从组会尴尬到学术突破:Transformer助力跨域推荐解析
    最近学习了Transformer模型,突然意识到我常阅读的一篇论文中也使用了Transformer。回想起上次开组会时,老师问我论文中的模型是什么,我当时没有答上来,现在才发现其实用的就是Transformer。这种学习过程让我深感,学得越多,知识之间的联系就会越清晰,许多概念最终都能融会贯通。这......
  • ICT50220 ICTNWK562 Configure Internet Gateways
    DEPARTMENTOFINFORMATIONTECHNOLOGY ICT50220DiplomaofInformationTechnology AssessmentICTNWK562ConfigureInternetGatewaysAssessmentTask4022Preparedby:CurriculumUnit,MelbournePolytechnic CoursecodeandnameICT50120DiplomaofInformat......
  • 三、Spring Boot集成Spring Security之securityFilterChain过滤器链详解
    二、默认过滤器链1、默认配置系统启动日志2、默认配置的过滤器及顺序如下org.springframework.security.web.session.DisableEncodeUrlFilterorg.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilterorg.springframework.security.web.c......
  • 无缝数据流动:跨域数据交换的高效策略!
    大型企业为了业务拓展需要,会在全国乃至全球各地设立分公司和办事机构,以便更好地处理当地事务,并进行市场的开拓和客户维护,因此大型企业都会面临跨域数据交换的场景。跨域数据交换时,需要考虑多方面的问题,以确保传输的安全性、效率、合规性和成本效益:1、安全传输数据加密:在传输过......
  • Spring 过滤器 拦截器 监听器 Aop
    目录Spring过滤器拦截器监听器Aop1.过滤器2.拦截器3.监听器4.Aop5.参考文档Spring过滤器拦截器监听器Aop1.过滤器1.简介 过滤器Filter用于对数据进行过滤和预处理 过滤器只能在请求前后使用 依赖于servlet容器基于函数回调实现其生命周期由servlet容器管......
  • 模拟一个微服务架构项目来学习包括Nacos、EMQX、GateWay、RabbitMQ、Canal、Mybatis-P
    前言介绍下最近做的项目:为什么做这个项目?项目的核心用户目标是谁?面向新能源电车用户给目标用户提供了什么价值?方便快捷充电服务团队的作用?需求分析,概要设计,详细设计,开发,测试,部署,上线我的作用?1-2两个核心业务详细设计(业务流程,接口入参,接口出参,表结......