From 0e7ef7f8add7a48225efb8e73c4fb1862f54c9b6 Mon Sep 17 00:00:00 2001 From: Chris Beer Date: Tue, 27 Dec 2016 07:11:42 -0800 Subject: [PATCH] Trim TokenBasedUser#export_secret_token for compatibility with ruby 2.4.0 --- .../concerns/blacklight/token_based_user.rb | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/app/controllers/concerns/blacklight/token_based_user.rb b/app/controllers/concerns/blacklight/token_based_user.rb index 355f5e89c1..b848535249 100644 --- a/app/controllers/concerns/blacklight/token_based_user.rb +++ b/app/controllers/concerns/blacklight/token_based_user.rb @@ -42,10 +42,21 @@ def encrypt_user_id(user_id, current_time = nil) end def export_secret_token - ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base).generate_key('encrypted user session key') + ActiveSupport::KeyGenerator.new(Rails.application.secrets.secret_key_base).generate_key('encrypted user session key')[0..key_len] end def message_encryptor ActiveSupport::MessageEncryptor.new(export_secret_token) end + + private + + # Ruby 2.4 requires keys of very particular lengths + def key_len + if ActiveSupport::MessageEncryptor.respond_to? :key_len + ActiveSupport::MessageEncryptor.key_len + else + -1 + end + end end