From d034f488f9c2d694bcad9950df0310ca869956e0 Mon Sep 17 00:00:00 2001 From: Eugene Kenny Date: Mon, 8 Jan 2018 20:45:46 +0000 Subject: Use SHA-1 for non-sensitive digests by default Instead of providing a configuration option to set the hash function, switch to SHA-1 for new apps and allow upgrading apps to opt in later via `new_framework_defaults_5_2.rb`. --- activesupport/CHANGELOG.md | 8 ++++---- activesupport/lib/active_support/railtie.rb | 7 ++++--- 2 files changed, 8 insertions(+), 7 deletions(-) (limited to 'activesupport') diff --git a/activesupport/CHANGELOG.md b/activesupport/CHANGELOG.md index 3f77b191f9..481b25a545 100644 --- a/activesupport/CHANGELOG.md +++ b/activesupport/CHANGELOG.md @@ -3,12 +3,12 @@ *Daniel Ma* -* Allow the hash function used to generate non-sensitive digests, such as the - ETag header, to be specified with `config.active_support.hash_digest_class`. +* Use SHA-1 to generate non-sensitive digests, such as the ETag header. - The object provided must respond to `#hexdigest`, e.g. `Digest::SHA1`. + Enabled by default for new apps; upgrading apps can opt in by setting + `config.active_support.use_sha1_digests = true`. - *Dmitri Dolguikh* + *Dmitri Dolguikh*, *Eugene Kenny* ## Rails 5.2.0.beta2 (November 28, 2017) ## diff --git a/activesupport/lib/active_support/railtie.rb b/activesupport/lib/active_support/railtie.rb index 6b8fa676a9..605b50d346 100644 --- a/activesupport/lib/active_support/railtie.rb +++ b/activesupport/lib/active_support/railtie.rb @@ -70,9 +70,10 @@ module ActiveSupport end initializer "active_support.set_hash_digest_class" do |app| - if app.config.active_support.hash_digest_class - ActiveSupport::Digest.hash_digest_class = - app.config.active_support.hash_digest_class + config.after_initialize do + if app.config.active_support.use_sha1_digests + ActiveSupport::Digest.hash_digest_class = ::Digest::SHA1 + end end end end -- cgit v1.2.3