Tencent / nohost

基于 Whistle 实现的多账号多环境远程配置及抓包调试平台
https://nohost.pro
Other
1.4k stars 160 forks source link

支持从自定义请求头中获取环境信息? #141

Closed WideLee closed 2 years ago

WideLee commented 2 years ago

【背景】 目前在nohost里,默认使用Header x-whistle-nohost-env 与 Cookie whistle_nohost_env来判断当前所属的环境以及命中的规则,但如果将nohost用于后台多环境路由的场景上,有些框架有自己的上下文链路透传字段,而且全链路对whistle-nohost-env进行透传需要对代码的改动较大。因此希望能实现一个自定义从请求中获取环境的能力,减少对业务代码的侵入改动

例如trpc-go框架中,上下文链路透传是在Header里trpc-trans-info实现的,这个请求头是一个json,里边有trpc-env表示环境信息,

Trpc-Trans-Info: {"traceparent":"MDAtNWM4ZjNlYWUyOTlhNDcyOTg3ZWI4NzM0YWY1NWMwMDUtMjYzY2M3OWQ2MGE4MDExOS0wMQ==","trpc-env":"d2FsbGklMkZlbnYwMQ==","x-request-id":"NWM4ZjNlYWUyOTlhNDcyOTg3ZWI4NzM0YWY1NWMwMDU="}

里边trpc-env是base64编码字符串walli%2Fenv01,希望将这个信息,用于判断匹配请求的所属的环境,从trpc-go这个case看,配置需要有json decode和base64 decode的能力

avwo commented 2 years ago

已处理,通过插件实现。