一个使用 JSON 序列化 Messages
的消息序列化器。
生成的结构非常简单
{
p: <payload>,
h: {
header1: value1,
header2: value2,
...
}
}
有效负载和标头值都使用 Base64 编码,以防止在存储序列化后的数据时出现 JSON 解析错误和编码问题。
方法
实例公共方法
binary?() 链接
源代码: 显示 | 在 GitHub 上
# File activerecord/lib/active_record/encryption/message_serializer.rb, line 36 def binary? false end
dump(message) 链接
源代码: 显示 | 在 GitHub 上
# 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) 链接
源代码: 显示 | 在 GitHub 上
# 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