Skip to content

fix: 修复Gateway网关使用Webflux,导致skywalking日志打印traceId失效.#262

Open
YuFizz wants to merge 2 commits intoYunaiV:master-jdk17from
YuFizz:master-jdk17-gatewayskywalking
Open

fix: 修复Gateway网关使用Webflux,导致skywalking日志打印traceId失效.#262
YuFizz wants to merge 2 commits intoYunaiV:master-jdk17from
YuFizz:master-jdk17-gatewayskywalking

Conversation

@YuFizz
Copy link
Copy Markdown

@YuFizz YuFizz commented Sep 11, 2025

解决方案:
使用Webflux的插件以及包工具,手动获取TraceId后设置到MDC.(WebFluxSkyWalkingTraceContext.traceId(exchange))

解决步骤:
1、首先下载Skywalking Agent后,查看Plugin文件夹下是否存在Weblux以及Gateway相关的jar包,如果不存在需要从option-plugin文件夹进行拷贝。
2、引入依赖 apm-toolkit-webflux,与Skywalking版本一致
3、编写工具类或者直接通过方法获取
4、编写过滤器:gateway.filter 下的GlobalFilter,设置优先顺序执行 (不能是WebFliter)。
5、Gateway异常处理需要重新获取

注意:本次修复测试skywalking的版本依赖于9.4.0,而项目中版本为9.5.0。每个版本的Agent可能存在不同,请使用时注意版本问题。

@rjl-cli
Copy link
Copy Markdown

rjl-cli commented Dec 8, 2025

有问题不敢承认,删除issue是吧?难道这是你们留下的后门?心虚了?
在请求的 Headers 中勾选添加 Authorization 字段但未填写任何值,系统会错误地绕过所有认证校验

复现接口

  1. /admin-api/system/user/simple-list
  2. /admin-api/system/user/list-all-simple
  3. /admin-api/system/role/list-all-simple

2 similar comments
@rjl-cli
Copy link
Copy Markdown

rjl-cli commented Dec 8, 2025

有问题不敢承认,删除issue是吧?难道这是你们留下的后门?心虚了?
在请求的 Headers 中勾选添加 Authorization 字段但未填写任何值,系统会错误地绕过所有认证校验

复现接口

  1. /admin-api/system/user/simple-list
  2. /admin-api/system/user/list-all-simple
  3. /admin-api/system/role/list-all-simple

@rjl-cli
Copy link
Copy Markdown

rjl-cli commented Dec 8, 2025

有问题不敢承认,删除issue是吧?难道这是你们留下的后门?心虚了?
在请求的 Headers 中勾选添加 Authorization 字段但未填写任何值,系统会错误地绕过所有认证校验

复现接口

  1. /admin-api/system/user/simple-list
  2. /admin-api/system/user/list-all-simple
  3. /admin-api/system/role/list-all-simple

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants