W3cubDocs

/Ruby on Rails 7.0

class ActiveRecord::Encryption::MessageSerializer

Parent:
Object

A message serializer that serializes Messages with JSON.

The generated structure is pretty simple:

{
  p: <payload>,
  h: {
    header1: value1,
    header2: value2,
    ...
  }
}

Both the payload and the header values are encoded with Base64 to prevent JSON parsing errors and encoding issues when storing the resulting serialized data.

Public Instance Methods

dump(message) Show source
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 29
def dump(message)
  raise ActiveRecord::Encryption::Errors::ForbiddenClass unless message.is_a?(ActiveRecord::Encryption::Message)
  JSON.dump message_to_json(message)
end
load(serialized_content) Show source
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 22
def load(serialized_content)
  data = JSON.parse(serialized_content)
  parse_message(data, 1)
rescue JSON::ParserError
  raise ActiveRecord::Encryption::Errors::Encoding
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.