From 8224178e8ca9746f97ce341179d2c636fa22a082 Mon Sep 17 00:00:00 2001 From: Claire Date: Mon, 2 Jun 2025 15:51:27 +0200 Subject: [PATCH] Revert "Remove cookie rotator (#32289)" (#34892) --- config/initializers/cookie_rotator.rb | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 config/initializers/cookie_rotator.rb diff --git a/config/initializers/cookie_rotator.rb b/config/initializers/cookie_rotator.rb new file mode 100644 index 0000000000..ccc2c6b21f --- /dev/null +++ b/config/initializers/cookie_rotator.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +# TODO: remove this file some time after 4.3.0 + +Rails.application.config.after_initialize do + Rails.application.config.action_dispatch.cookies_rotations.tap do |cookies| + authenticated_encrypted_cookie_salt = Rails.application.config.action_dispatch.authenticated_encrypted_cookie_salt + signed_cookie_salt = Rails.application.config.action_dispatch.signed_cookie_salt + + secret_key_base = Rails.application.secret_key_base + + key_generator = ActiveSupport::KeyGenerator.new( + secret_key_base, iterations: 1000, hash_digest_class: OpenSSL::Digest::SHA1 + ) + key_len = ActiveSupport::MessageEncryptor.key_len + + old_encrypted_secret = key_generator.generate_key(authenticated_encrypted_cookie_salt, key_len) + old_signed_secret = key_generator.generate_key(signed_cookie_salt) + + cookies.rotate :encrypted, old_encrypted_secret + cookies.rotate :signed, old_signed_secret + end +end