• 江西小徐's avatar
    fix: 修复并发请求时共享httpClient.Transport导致的竞态条件 · 2392e7cf
    江西小徐 authored
    问题描述:
    当多个请求并发执行且使用不同代理配置时,它们会同时修改共享的
    s.httpClient.Transport,导致请求可能使用错误的代理(数据泄露风险)
    或意外失败。
    
    修复方案:
    为需要代理的请求创建独立的http.Client,而不是修改共享的httpClient.Transport。
    
    改动内容:
    - 新增 buildUpstreamRequestResult 结构体,返回请求和可选的独立client
    - 修改 buildUpstreamRequest 方法,配置代理时创建独立client
    - 更新 Forward 方法,根据是否有代理选择合适的client
    2392e7cf
gateway_service.go 31.5 KB