Class: Mach::RequestValidator

Inherits:
Object
  • Object
show all
Defined in:
lib/mach/validation/request_validator.rb

Class Method Summary collapse

Class Method Details

.valid?(rack_request) ⇒ Boolean

Returns:

  • (Boolean)

Raises:



10
11
12
13
14
15
16
17
18
19
20
# File 'lib/mach/validation/request_validator.rb', line 10

def valid?(rack_request)
  hmac_request = Mach::Request.new(rack_request.env)
  raise Mach::Error::RequestNotMacAuthenticatedError unless hmac_request.mac_authorization?
  valid = hmac_request.mac_id &&
    Mach::Validation::TimestampValidator.valid?(hmac_request) &&
    Mach::Validation::NonceValidator.valid?(hmac_request) &&
    Mach::Validation::SignatureValidator.valid?(hmac_request)
  #need to make sure we store the nonce
  Nonce.persist(hmac_request.mac_id, hmac_request.mac_nonce, hmac_request.mac_timestamp.to_i) if valid
  valid
end