summaryrefslogtreecommitdiff
path: root/config/initializers/content_security_policy.rb
blob: 608d0401a96ad3e61df510aa4bb5e116ed4defd0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# frozen_string_literal: true

csp_settings = Settings.gitlab.content_security_policy

if csp_settings['enabled']
  # See https://guides.rubyonrails.org/security.html#content-security-policy
  Rails.application.config.content_security_policy do |policy|
    directives = csp_settings.fetch('directives', {})
    loader = ::Gitlab::ContentSecurityPolicy::ConfigLoader.new(directives)
    loader.load(policy)
  end

  Rails.application.config.content_security_policy_report_only = csp_settings['report_only']
  Rails.application.config.content_security_policy_nonce_generator = ->(request) { SecureRandom.base64(16) }
end