Class: Karafka::Pro::Encryption::Messages::Parser

Inherits:
Messages::Parser show all
Defined in:
lib/karafka/pro/encryption/messages/parser.rb

Overview

Note:

There may be a case where someone decides not to encrypt data and we start getting unencrypted payloads. That is why we always rely on message headers for encryption indication.

Pro parser that takes into consideration encryption usage

Instance Method Summary collapse

Instance Method Details

#call(message) ⇒ Object

Returns deserialized payload.

Parameters:

Returns:

  • (Object)

    deserialized payload



25
26
27
28
29
30
31
32
33
34
35
# File 'lib/karafka/pro/encryption/messages/parser.rb', line 25

def call(message)
  if active? && message.headers.key?('encryption')
    # Decrypt raw payload so it can be handled by the default parser logic
    message.raw_payload = cipher.decrypt(
      message.headers['encryption'],
      message.raw_payload
    )
  end

  super(message)
end