Class: ActiveElasticJob::MessageVerifier

Inherits:
Object
  • Object
show all
Defined in:
lib/active_elastic_job/message_verifier.rb

Overview

:nodoc:

Defined Under Namespace

Classes: InvalidDigest

Instance Method Summary collapse

Constructor Details

#initialize(secret) ⇒ MessageVerifier

Returns a new instance of MessageVerifier.



12
13
14
# File 'lib/active_elastic_job/message_verifier.rb', line 12

def initialize(secret)
  @secret = secret
end

Instance Method Details

#generate_digest(message) ⇒ Object



27
28
29
30
# File 'lib/active_elastic_job/message_verifier.rb', line 27

def generate_digest(message)
  require 'openssl' unless defined?(OpenSSL)
  OpenSSL::HMAC.hexdigest(OpenSSL::Digest.const_get('SHA1').new, @secret, message)
end

#verify(message, digest) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/active_elastic_job/message_verifier.rb', line 16

def verify(message, digest)
  if message.nil? || message.blank? || digest.nil? || digest.blank?
    raise InvalidDigest
  end

  unless ActiveSupport::SecurityUtils.secure_compare(digest, generate_digest(message))
    raise InvalidDigest
  end
  true
end