10
11
12
13
14
15
16
17
18
19
20
21
|
# File 'lib/booth/testing/support/cookie_data_from_browser.rb', line 10
def call
cipher = ActiveSupport::MessageEncryptor.default_cipher
key_length = ActiveSupport::MessageEncryptor.key_len(cipher)
key_generator = Rails.application.key_generator
salt = Rails.configuration.action_dispatch.authenticated_encrypted_cookie_salt
secret = key_generator.generate_key(salt, key_length)
encryptor = ActiveSupport::MessageEncryptor.new(secret, cipher:, serializer: ActiveSupport::MessageEncryptor::NullSerializer)
cookie = CGI.unescape(encrypted_cookie_data.strip)
session_name = Rails.application.config.session_options[:key]
JSON.parse encryptor.decrypt_and_verify(cookie, purpose: "cookie.#{session_name}")
end
|