lib/openstax/accounts/sso.rb in openstax_accounts-8.1.0 vs lib/openstax/accounts/sso.rb in openstax_accounts-8.1.1
- old
+ new
@@ -12,11 +12,11 @@
class InvalidSecretsConfiguration < StandardError; end
extend self
def user_uuid(request)
- decrypt(request)['user_uuid']
+ (decrypt(request) || {}).dig("user", "uuid")
end
# https://github.com/rails/rails/blob/4-2-stable/activesupport/lib/active_support/message_encryptor.rb#L90
def decrypt(request)
cookie = request.cookies[OpenStax::Accounts.configuration.sso_cookie_name]
@@ -38,17 +38,18 @@
def encryptor
@encryptor ||= begin
key = OpenStax::Accounts.configuration.sso_secret_key
raise InvalidSecretsConfiguration, 'Missing sso_secret_key configuration' if key.blank?
+ cipher = 'aes-256-cbc'
salt = OpenStax::Accounts.configuration.sso_secret_salt
signed_salt = "signed encrypted #{salt}"
key_generator = ActiveSupport::KeyGenerator.new(key, iterations: 1000)
secret = key_generator.generate_key(salt)[
- 0, OpenSSL::Cipher.new('aes-256-cbc').key_len
+ 0, OpenSSL::Cipher.new(cipher).key_len
]
sign_secret = key_generator.generate_key(signed_salt)
- ActiveSupport::MessageEncryptor.new(secret, sign_secret, serializer: JSON)
+ ActiveSupport::MessageEncryptor.new(secret, sign_secret, cipher: cipher, serializer: JSON)
end
end
def reset_config
@encryptor = nil