当前位置: 首页 > wzjs >正文

无锡地区做网站WordPress VIP充值

无锡地区做网站,WordPress VIP充值,济南商城网站建设多少钱,seo需要什么技术引言:跨域问题的本质与网关的解决方案 在现代Web应用中,跨域资源共享(CORS)是前端开发中不可避免的挑战。作为微服务架构的入口,Spring Cloud Gateway提供了强大的CORS支持。本文将深入剖析网关中的跨域处理机制&…

引言:跨域问题的本质与网关的解决方案

在现代Web应用中,跨域资源共享(CORS)是前端开发中不可避免的挑战。作为微服务架构的入口,Spring Cloud Gateway提供了强大的CORS支持。本文将深入剖析网关中的跨域处理机制,揭示其与全局过滤器和安全链的交互原理。

一、配置CORS的两种方式

SpringCloudGateway 使用CorsWebFilter 来处理跨域逻辑,这个 Filter 可以通过配置开启,也可以自己定义

配置文件开启

开启跨域配置globalcors后,SpringCloudGateway 会自动注册一个全局的跨域过滤器 CorsWebFilter,会由它来处理请求的 CORS 相关逻辑

spring:cloud:gateway:globalcors:add-to-simple-url-handler-mapping: truecors-configurations:# 注意缩进'[/**]':# 注意 allowed-origins 设置* 不能与allow-credentials=true同时开启allowed-origins: - "https://production-domain.com"- "http://localhost:*"allowed-methods: - GET- POST- PUT- DELETE- OPTIONSallowed-headers: - "Content-Type"- "Authorization"allow-credentials: truemax-age: 3600

自定义CorsWebFilter方式

@Bean
public CorsWebFilter corsWebFilter() {CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);config.addAllowedOrigin("https://production-domain.com");config.addAllowedMethod("*");config.addAllowedHeader("*");config.setMaxAge(3600L);UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsWebFilter(source);
}

二、 CorsWebFilter 跨域过滤器

CorsWebFilter的核心责任

  1. Origin验证器
    • 只验证Origin头的合法性
    • 不区分请求方法(GET/POST/OPTIONS同等对待)
    • 非法Origin:直接拦截返回403
    • 合法Origin:标记请求并放行
    • 没有 Origin:直接放行
  2. 响应头装饰器
    • 在响应返回阶段检查"跨域标记"
    • 为标记的请求添加CORS头
    • 不修改业务系统的原始响应

CorsWebFilter 的跨域处理流程

  1. 请求带有orgin则进入跨域请求判断,如果origin是不允许的,那么CorsWebFilter直接拦截了请求,返回403
  2. 请求的origin是允许的,那么CorsWebFilter就会放行,后续进入SecurityWebFilterChain 、低优先级的全局过滤器,然后进入最后的路由过滤器。并且CorsWebFilter会为响应带上跨域相关的请求头
  3. 请求不带有origin请求头,CorsWebFilter 会直接放行,最后也不会为响应带上跨域相关的请求头。
  4. OPTIONS请求的路径,和非OPTIONS的路径是一样的,如果options带origin字段,则会由CorsWebFilter根据origin拦截或放行到最后的业务系统,,如果options不带有origin字段则CorsWebFilter 直接放行到业务系统,由业务系统处理该OPTIONS请求。所以业务系统也可以单独定义自己的跨域逻辑。

网关统一处理 OPTIONS 请求

可以看到,OPTIONS 请求,即使在满足网关跨域的条件下,依然会向业务系统传递,如果不需要其他要求,可以直接在网关这一层就对 OPTIONS 请求进行响应了。

@Bean
@Order(Ordered.HIGHEST_PRECEDENCE + 1)
public GlobalFilter optionsFilter() {return (exchange, chain) -> {if (exchange.getRequest().getMethod() == HttpMethod.OPTIONS) {// 构造标准响应ServerHttpResponse response = exchange.getResponse();response.setStatusCode(HttpStatus.NO_CONTENT);response.getHeaders().setAccessControlMaxAge(Duration.ofHours(1));return response.setComplete(); // 中断后续处理}return chain.filter(exchange);};
}

三、 Spring Cloud Gateway请求处理全链条

完整过滤器链执行顺序

顺序组件Order值职责
1CorsWebFilter-2147483648处理跨域逻辑
2全局过滤器 (高优先级)< -100认证、日志等预处理
3SecurityWebFilterChain-100安全认证与授权
4全局过滤器 (低优先级)> -100响应处理等后置操作
5路由过滤器1~10000路径重写、负载均衡
6下游服务-业务处理

关键组件交互时序图


文章转载自:

http://PCXaUesN.cknws.cn
http://9M4WVwUa.cknws.cn
http://NtLBmPkL.cknws.cn
http://1cyen9rc.cknws.cn
http://hrjpvjtu.cknws.cn
http://8BTTcWAO.cknws.cn
http://WJdVi8wS.cknws.cn
http://iHs3PH5K.cknws.cn
http://cjLFzCC9.cknws.cn
http://f4HaLXXP.cknws.cn
http://1KcO9Hjg.cknws.cn
http://4vfW6whF.cknws.cn
http://85gTnM2Y.cknws.cn
http://nCSjOptF.cknws.cn
http://DKPlAW8r.cknws.cn
http://NK3VgFPT.cknws.cn
http://dEZh4HqQ.cknws.cn
http://AB0GJwt8.cknws.cn
http://As2WozHF.cknws.cn
http://xIOI9AIq.cknws.cn
http://EmG6gQ4L.cknws.cn
http://SlwhdYE9.cknws.cn
http://B40wCsRg.cknws.cn
http://2zpGTD2p.cknws.cn
http://XOfl7wuj.cknws.cn
http://BfUYdQE7.cknws.cn
http://Ge0KGijF.cknws.cn
http://eYTuWiRH.cknws.cn
http://9wUp9a1c.cknws.cn
http://phb7nhKh.cknws.cn
http://www.dtcms.com/wzjs/751659.html

相关文章:

  • 怎么做微信网站推广网站怎么加内容吗
  • 传奇服务器如何做网站北京网站开发网站建设报价
  • 免费ppt下载网站有哪些flash网站开发工具
  • 搬瓦工如何搭建做网站湖北响应式网页建设企业
  • 精品设计网站苏州市住房和城乡建设局投折网站
  • 有什么网站可以做六级题目嘛河北建设厅官方网站八大员考试
  • 服务器网站部署网站域解析查询
  • 同性男做的视频网站网站建设款如何入账
  • 手机代码网站有哪些问题吗discuz可以做门户网站吗
  • 基于django的电子商务网站设计三好街 网站建设
  • 福安 网站设计公司网站建设价格贵吗
  • 一个网站里面只放一个图片怎么做的室内设计学校哪些比较好
  • 网站建设实训步骤网页制作教程(第三版)
  • 个人网站备案怎么做织梦网站被做跳转
  • 建设一个网站的所有代码如何自己制作网页
  • 百度权重9的网站php视频转码
  • 建立网站编程wordpress 登陆接口
  • wordpress 远程插件安装 ftpseo3分子的立体构型
  • 江苏百城建设有限公司官方网站网站菜单分类怎么做
  • 谷歌网站推广费用wordpress登入插件
  • 需要注册的网站建设python安装教程
  • 济南网站建设 行知科技哪里可以做网站的
  • 焦作建设银行门户网站南昌百度关键词搜索
  • 企业开源网站系统地方门户网站赚钱
  • 网站社区怎么创建网页设计如何居中
  • cpa网站建设教程湖南网站开发公司
  • 电脑建设网站在互联网访问南充做网站公司
  • 旅游网站建设的目标是什么青岛网站建设及app
  • 太原企业网站制作公司wordpress vr主题公园
  • 初二做网站的首页模板wordpress太卡