class EventQ::SignatureProviders::Manager

Public Class Methods

new() click to toggle source
# File lib/eventq/eventq_base/signature_providers.rb, line 9
def initialize
  @providers = {}
  @providers[SHA256] = EventQ::SignatureProviders::Sha256SignatureProvider
end

Public Instance Methods

get_provider(provider_type) click to toggle source

This method is called to get a signature provider

# File lib/eventq/eventq_base/signature_providers.rb, line 15
def get_provider(provider_type)
  provider = @providers[provider_type]
  if provider == nil
    raise "Invalid provider type specified: #{provider_type}"
  end
  return provider.new
end
validate_signature(message:, queue:) click to toggle source

This method is called to validate a queue message's signature

# File lib/eventq/eventq_base/signature_providers.rb, line 24
def validate_signature(message:, queue:)
  valid = true

  if queue.require_signature == true && message.signature == nil
    valid = false
  elsif message.signature != nil
    provider = get_provider(EventQ::Configuration.signature_provider)
    valid = provider.valid?(message: message, secret: EventQ::Configuration.signature_secret)
  end

  if !valid
    raise EventQ::Exceptions::InvalidSignatureException.new
  end

  true

end