mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
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-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-Credentials'] = 'true'
|
||||||
headers['Access-Control-Allow-Methods'] = 'POST, PUT, GET, OPTIONS, DELETE'
|
headers['Access-Control-Allow-Methods'] = 'POST, PUT, GET, OPTIONS, DELETE'
|
||||||
|
headers['Access-Control-Max-Age'] = '7200'
|
||||||
end
|
end
|
||||||
|
|
||||||
headers
|
headers
|
||||||
|
@ -110,7 +110,8 @@ describe Hijack do
|
|||||||
"Access-Control-Allow-Origin" => "www.rainbows.com",
|
"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-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-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)
|
expect(headers).to eq(expected)
|
||||||
@ -147,7 +148,8 @@ describe Hijack do
|
|||||||
"Access-Control-Allow-Origin" => "https://www.rainbows.com",
|
"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-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-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)
|
expect(headers).to eq(expected)
|
||||||
|
Loading…
Reference in New Issue
Block a user