From c49e18bb74d92bb92c3faaa3904f988922f0f5eb Mon Sep 17 00:00:00 2001 From: "Eric D. Helms" Date: Tue, 4 Feb 2025 09:22:16 -0500 Subject: [PATCH] Rely on the digest class defined by Rails Rails applications can override the digest class through configuration settings. Further, Rails does this by default in versions suchs as 7 where it defaults to SHA256. Using ActiveSupport::Digest directly skips over this setting causing it to always be MD5 in the current state. This breaks in modern environments MD5 is disabled such as FIPS environments. Signed-off-by: Eric D. Helms --- lib/angular-rails-templates/engine.rb | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/lib/angular-rails-templates/engine.rb b/lib/angular-rails-templates/engine.rb index 20467d0..0f5f732 100644 --- a/lib/angular-rails-templates/engine.rb +++ b/lib/angular-rails-templates/engine.rb @@ -37,7 +37,12 @@ class Engine < ::Rails::Engine # Sprockets Cache Busting # If ART's version or settings change, expire and recompile all assets - hash_digest = defined?(ActiveSupport::Digest) ? ActiveSupport::Digest : Digest::MD5 + hash_digest = if defined?(ActiveSupport::Digest) + app.config.active_support.hash_digest_class || ActiveSupport::Digest.hash_digest_class + else + Digest::MD5 + end + app.config.assets.version = [ app.config.assets.version, 'ART',