When allowed_origins is "*" use that in response (#2289)

This commit is contained in:
Jeff Mitchell authored and GitHub committed 2022-07-25 14:05:00 -04:00
1 parent 24cf580045
commit 67d789cb6d
2 files changed
+17 -1

No files matched your search

+14 -1
View File
@@ -76,6 +76,15 @@ func TestHandler_CORS(t *testing.T) {
if err != nil {
t.Fatal(err)
}
var wildcardListenerNum int
for listenerNum, listener := range cfg.Listeners {
if len(listener.CorsAllowedOrigins) == 1 && listener.CorsAllowedOrigins[0] == "*" {
wildcardListenerNum = listenerNum
break
}
}
tc := NewTestController(t, &TestControllerOpts{
Config: cfg,
DisableAuthorizationFailures: true,
@@ -256,7 +265,11 @@ func TestHandler_CORS(t *testing.T) {
// If origin was set and we expect it to be successful, run some more checks
if c.origin != "" && c.code == http.StatusOK && c.listenerNum > 1 {
assert.Equal(t, c.origin, resp.HttpResponse().Header.Get("Access-Control-Allow-Origin"))
expOrigin := c.origin
if c.listenerNum == wildcardListenerNum {
expOrigin = "*"
}
assert.Equal(t, expOrigin, resp.HttpResponse().Header.Get("Access-Control-Allow-Origin"))
assert.Equal(t, "Origin", resp.HttpResponse().Header.Get("Vary"))
}
})
+3
View File
@@ -419,6 +419,9 @@ func wrapHandlerWithCors(h http.Handler, props HandlerProperties) http.Handler {
case len(allowedOrigins) == 1 && allowedOrigins[0] == "*":
valid = true
// When allowed origins is "*" we want to return that rather than
// round-tripping any user-specified value
origin = "*"
default:
valid = strutil.StrListContains(allowedOrigins, origin)