fix(ai-proxy): Avoid overwriting the existing original auth header (#2904)

This commit is contained in:
澄潭
2025-09-11 16:54:26 +08:00
committed by GitHub
parent 28228edfe5
commit 89d414e49a

View File

@@ -39,14 +39,12 @@ type pair[K, V any] struct {
var (
headersCtxKeyMapping = map[string]string{
util.HeaderAuthority: ctxOriginalHost,
util.HeaderPath: ctxOriginalPath,
util.HeaderAuthorization: ctxOriginalAuth,
util.HeaderAuthority: ctxOriginalHost,
util.HeaderPath: ctxOriginalPath,
}
headerToOriginalHeaderMapping = map[string]string{
util.HeaderAuthority: util.HeaderOriginalHost,
util.HeaderPath: util.HeaderOriginalPath,
util.HeaderAuthorization: util.HeaderOriginalAuth,
util.HeaderAuthority: util.HeaderOriginalHost,
util.HeaderPath: util.HeaderOriginalPath,
}
pathSuffixToApiName = []pair[string, provider.ApiName]{
// OpenAI style
@@ -144,6 +142,11 @@ func initContext(ctx wrapper.HttpContext) {
for _, originHeader := range headerToOriginalHeaderMapping {
proxywasm.RemoveHttpRequestHeader(originHeader)
}
originalAuth, _ := proxywasm.GetHttpRequestHeader(util.HeaderOriginalAuth)
if originalAuth == "" {
value, _ := proxywasm.GetHttpRequestHeader(util.HeaderAuthorization)
ctx.SetContext(ctxOriginalAuth, value)
}
}
func saveContextsToHeaders(ctx wrapper.HttpContext) {
@@ -161,6 +164,10 @@ func saveContextsToHeaders(ctx wrapper.HttpContext) {
_ = proxywasm.ReplaceHttpRequestHeader(originalHeader, originalValue)
}
}
originalValue := ctx.GetStringContext(ctxOriginalAuth, "")
if originalValue != "" {
_ = proxywasm.ReplaceHttpRequestHeader(util.HeaderOriginalAuth, originalValue)
}
}
func onHttpRequestHeader(ctx wrapper.HttpContext, pluginConfig config.PluginConfig) types.Action {