Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
zlt2000
microservices-platform
提交
1368250c
microservices-platform
项目概览
zlt2000
/
microservices-platform
10 个月 前同步成功
通知
16
Star
4
Fork
3
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
microservices-platform
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
1368250c
编写于
5月 08, 2022
作者:
J
jarvis
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: gateway增加将query参数中带版本号的参数设置到header中
上级
13f99cbf
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
45 addition
and
0 deletion
+45
-0
zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/VersionLbIsolationFilter.java
.../com/central/gateway/filter/VersionLbIsolationFilter.java
+45
-0
未找到文件。
zlt-gateway/sc-gateway/src/main/java/com/central/gateway/filter/VersionLbIsolationFilter.java
0 → 100644
浏览文件 @
1368250c
package
com.central.gateway.filter
;
import
com.central.common.constant.CommonConstant
;
import
com.central.common.constant.ConfigConstants
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.cloud.gateway.filter.GatewayFilterChain
;
import
org.springframework.cloud.gateway.filter.GlobalFilter
;
import
org.springframework.core.Ordered
;
import
org.springframework.http.server.reactive.ServerHttpRequest
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.server.ServerWebExchange
;
import
reactor.core.publisher.Mono
;
import
java.util.List
;
/**
* 示例
*
* @author jarvis create by 2022/5/8
*/
@Component
public
class
VersionLbIsolationFilter
implements
GlobalFilter
,
Ordered
{
@Value
(
"${"
+
ConfigConstants
.
CONFIG_LOADBALANCE_ISOLATION_ENABLE
+
":}"
)
private
Boolean
enableVersionControl
;
@Override
public
Mono
<
Void
>
filter
(
ServerWebExchange
exchange
,
GatewayFilterChain
chain
)
{
if
(
Boolean
.
TRUE
.
equals
(
enableVersionControl
)
&&
exchange
.
getRequest
().
getQueryParams
().
containsKey
(
CommonConstant
.
Z_L_T_VERSION
)){
String
version
=
exchange
.
getRequest
().
getQueryParams
().
get
(
CommonConstant
.
Z_L_T_VERSION
).
get
(
0
);
ServerHttpRequest
rebuildRequest
=
exchange
.
getRequest
().
mutate
().
headers
(
header
->
{
header
.
add
(
CommonConstant
.
Z_L_T_VERSION
,
version
);
}).
build
();
ServerWebExchange
rebuildServerWebExchange
=
exchange
.
mutate
().
request
(
rebuildRequest
).
build
();
return
chain
.
filter
(
rebuildServerWebExchange
);
}
return
chain
.
filter
(
exchange
);
}
@Override
public
int
getOrder
()
{
return
Ordered
.
HIGHEST_PRECEDENCE
;
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录