跳至內容 跳至搜尋

訊息序列化器,用 JSON 來序列化訊息

所產生的結構非常簡單

{
  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