From 2d27c110610a848d30fe150c58bbd60ebf6fab7c Mon Sep 17 00:00:00 2001 From: ThibG Date: Thu, 11 Oct 2018 20:35:46 +0200 Subject: Set Content-Security-Policy rules through RoR's config (#8957) * Set CSP rules in RoR's configuration * Override CSP setting in the embed controller to allow frames --- config/initializers/1_hosts.rb | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 config/initializers/1_hosts.rb (limited to 'config/initializers/1_hosts.rb') diff --git a/config/initializers/1_hosts.rb b/config/initializers/1_hosts.rb new file mode 100644 index 000000000..757f1f735 --- /dev/null +++ b/config/initializers/1_hosts.rb @@ -0,0 +1,29 @@ +# frozen_string_literal: true + +port = ENV.fetch('PORT') { 3000 } +host = ENV.fetch('LOCAL_DOMAIN') { "localhost:#{port}" } +web_host = ENV.fetch('WEB_DOMAIN') { host } + +alternate_domains = ENV.fetch('ALTERNATE_DOMAINS') { '' } + +Rails.application.configure do + https = Rails.env.production? || ENV['LOCAL_HTTPS'] == 'true' + + config.x.local_domain = host + config.x.web_domain = web_host + config.x.use_https = https + config.x.use_s3 = ENV['S3_ENABLED'] == 'true' + config.x.use_swift = ENV['SWIFT_ENABLED'] == 'true' + + config.x.alternate_domains = alternate_domains.split(/\s*,\s*/) + + config.action_mailer.default_url_options = { host: web_host, protocol: https ? 'https://' : 'http://', trailing_slash: false } + + config.x.streaming_api_base_url = ENV.fetch('STREAMING_API_BASE_URL') do + if Rails.env.production? + "ws#{https ? 's' : ''}://#{web_host}" + else + "ws://#{ENV['REMOTE_DEV'] == 'true' ? host.split(':').first : 'localhost'}:4000" + end + end +end -- cgit