fix: merge runtime and channel header overrides, skip missing source headers

This commit is contained in:
Seefs
2026-02-25 16:12:34 +08:00
parent 58fcd9cbca
commit 3034fb8899
5 changed files with 234 additions and 13 deletions
+1 -4
View File
@@ -173,10 +173,7 @@ func processHeaderOverride(info *common.RelayInfo, c *gin.Context) (map[string]s
return headerOverride, nil
}
headerOverrideSource := info.HeadersOverride
if info.UseRuntimeHeadersOverride {
headerOverrideSource = info.RuntimeHeadersOverride
}
headerOverrideSource := common.GetEffectiveHeaderOverride(info)
passAll := false
var passthroughRegex []*regexp.Regexp
+2 -3
View File
@@ -80,7 +80,7 @@ func TestProcessHeaderOverride_NonTestKeepsClientHeaderPlaceholder(t *testing.T)
require.Equal(t, "trace-123", headers["X-Upstream-Trace"])
}
func TestProcessHeaderOverride_RuntimeOverrideHasPriority(t *testing.T) {
func TestProcessHeaderOverride_RuntimeOverrideMergesWithChannelOverride(t *testing.T) {
t.Parallel()
gin.SetMode(gin.TestMode)
@@ -107,8 +107,7 @@ func TestProcessHeaderOverride_RuntimeOverrideHasPriority(t *testing.T) {
require.NoError(t, err)
require.Equal(t, "runtime-value", headers["X-Static"])
require.Equal(t, "runtime-only", headers["X-Runtime"])
_, ok := headers["X-Legacy"]
require.False(t, ok)
require.Equal(t, "legacy-only", headers["X-Legacy"])
}
func TestProcessHeaderOverride_PassthroughSkipsAcceptEncoding(t *testing.T) {