diff --git a/plugins/wasm-go/extensions/ai-proxy/main.go b/plugins/wasm-go/extensions/ai-proxy/main.go index d89c4a052..296ec165c 100644 --- a/plugins/wasm-go/extensions/ai-proxy/main.go +++ b/plugins/wasm-go/extensions/ai-proxy/main.go @@ -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 {