mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: remove legacy CSP implementation to make strict-dynamic only accepted behaviour (#27486)
* DEV: remove legacy CSP implementation that allowed for non-strict-dynamic behaviour
This commit is contained in:
@@ -16,51 +16,4 @@ RSpec.describe "content security policy integration" do
|
||||
/script-src 'nonce-[^']+' 'strict-dynamic';/,
|
||||
)
|
||||
end
|
||||
|
||||
context "with different hostnames - legacy" do
|
||||
before { SiteSetting.content_security_policy_strict_dynamic = false }
|
||||
|
||||
before do
|
||||
SiteSetting.content_security_policy = true
|
||||
RailsMultisite::ConnectionManagement.stubs(:current_db_hostnames).returns(
|
||||
%w[primary.example.com secondary.example.com],
|
||||
)
|
||||
RailsMultisite::ConnectionManagement.stubs(:current_hostname).returns("primary.example.com")
|
||||
end
|
||||
|
||||
it "works with the primary domain" do
|
||||
host! "primary.example.com"
|
||||
get "/"
|
||||
expect(response.headers["Content-Security-Policy"]).to include("http://primary.example.com")
|
||||
end
|
||||
|
||||
it "works with the secondary domain" do
|
||||
host! "secondary.example.com"
|
||||
get "/"
|
||||
expect(response.headers["Content-Security-Policy"]).to include("http://secondary.example.com")
|
||||
end
|
||||
|
||||
it "uses the primary domain for unknown hosts" do
|
||||
host! "unknown.example.com"
|
||||
get "/"
|
||||
expect(response.headers["Content-Security-Policy"]).to include("http://primary.example.com")
|
||||
end
|
||||
end
|
||||
|
||||
context "with different protocols - legacy" do
|
||||
before { SiteSetting.content_security_policy_strict_dynamic = false }
|
||||
|
||||
it "forces https when the site setting is enabled" do
|
||||
SiteSetting.force_https = true
|
||||
get "/"
|
||||
expect(response.headers["Content-Security-Policy"]).to include("https://test.localhost")
|
||||
end
|
||||
|
||||
it "uses https when the site setting is disabled, but request is ssl" do
|
||||
SiteSetting.force_https = false
|
||||
https!
|
||||
get "/"
|
||||
expect(response.headers["Content-Security-Policy"]).to include("https://test.localhost")
|
||||
end
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user