FEATURE: Cache CORS preflight requests for 2h (#14614)
* FEATURE: Cache CORS preflight requests for 2h Browsers will cache this for 5 seconds by default. If using MessageBus in a different domain, Discourse will issue a new long polling, by default, every 30s or so. This means we would be issuing a new preflight request **every time**. This can be incredibly wasteful, so let's cache the authorization in the client for 2h, which is the maximum Chromium allows us as of today. * fix tests
This commit is contained in:
parent
7c7e03e54b
commit
b301a6b3db
|
@ -45,6 +45,7 @@ class Discourse::Cors
|
|||
headers['Access-Control-Allow-Headers'] = 'Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Present, User-Api-Key, User-Api-Client-Id, Authorization'
|
||||
headers['Access-Control-Allow-Credentials'] = 'true'
|
||||
headers['Access-Control-Allow-Methods'] = 'POST, PUT, GET, OPTIONS, DELETE'
|
||||
headers['Access-Control-Max-Age'] = '7200'
|
||||
end
|
||||
|
||||
headers
|
||||
|
|
|
@ -110,7 +110,8 @@ describe Hijack do
|
|||
"Access-Control-Allow-Origin" => "www.rainbows.com",
|
||||
"Access-Control-Allow-Headers" => "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Present, User-Api-Key, User-Api-Client-Id, Authorization",
|
||||
"Access-Control-Allow-Credentials" => "true",
|
||||
"Access-Control-Allow-Methods" => "POST, PUT, GET, OPTIONS, DELETE"
|
||||
"Access-Control-Allow-Methods" => "POST, PUT, GET, OPTIONS, DELETE",
|
||||
"Access-Control-Max-Age" => "7200",
|
||||
}
|
||||
|
||||
expect(headers).to eq(expected)
|
||||
|
@ -147,7 +148,8 @@ describe Hijack do
|
|||
"Access-Control-Allow-Origin" => "https://www.rainbows.com",
|
||||
"Access-Control-Allow-Headers" => "Content-Type, Cache-Control, X-Requested-With, X-CSRF-Token, Discourse-Present, User-Api-Key, User-Api-Client-Id, Authorization",
|
||||
"Access-Control-Allow-Credentials" => "true",
|
||||
"Access-Control-Allow-Methods" => "POST, PUT, GET, OPTIONS, DELETE"
|
||||
"Access-Control-Allow-Methods" => "POST, PUT, GET, OPTIONS, DELETE",
|
||||
"Access-Control-Max-Age" => "7200",
|
||||
}
|
||||
|
||||
expect(headers).to eq(expected)
|
||||
|
|
Loading…
Reference in New Issue