跳至内容 跳至搜索

一个使用 JSON 序列化 Messages 的消息序列化器。

生成的结构非常简单

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

有效负载和标头值都使用 Base64 编码,以防止在存储序列化后的数据时出现 JSON 解析错误和编码问题。

方法
B
D
L

实例公共方法

binary?()

# File activerecord/lib/active_record/encryption/message_serializer.rb, line 36
def binary?
  false
end

dump(message)

# File activerecord/lib/active_record/encryption/message_serializer.rb, line 31
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)

# File activerecord/lib/active_record/encryption/message_serializer.rb, line 24
def load(serialized_content)
  data = JSON.parse(serialized_content)
  parse_message(data, 1)
rescue JSON::ParserError
  raise ActiveRecord::Encryption::Errors::Encoding
end