Class: AlexaVerifier::Verifier
- Inherits:
-
Object
- Object
- AlexaVerifier::Verifier
- Defined in:
- lib/alexa_verifier/verifier.rb,
lib/alexa_verifier/verifier/certificate_verifier.rb,
lib/alexa_verifier/verifier/certificate_u_r_i_verifier.rb
Overview
A namespace for all of our verifiers to live under
Defined Under Namespace
Modules: CertificateURIVerifier, CertificateVerifier
Instance Attribute Summary collapse
Instance Method Summary collapse
-
#configure {|config| ... } ⇒ Object
Used to configure AlexaVerifier.
-
#initialize {|config| ... } ⇒ Verifier
constructor
Create a new AlexaVerifier::Verifier object.
-
#valid!(request) ⇒ nil
Validate a request object from Rack.
-
#valid?(request) ⇒ Boolean
Validate a request object from Rack.
Constructor Details
#initialize {|config| ... } ⇒ Verifier
Create a new AlexaVerifier::Verifier object
14 15 16 17 18 |
# File 'lib/alexa_verifier/verifier.rb', line 14 def initialize @configuration = AlexaVerifier::Configuration.new yield @configuration if block_given? end |
Instance Attribute Details
#configuration ⇒ Object
8 9 10 |
# File 'lib/alexa_verifier/verifier.rb', line 8 def configuration @configuration end |
Instance Method Details
#configure {|config| ... } ⇒ Object
Used to configure AlexaVerifier.
70 71 72 |
# File 'lib/alexa_verifier/verifier.rb', line 70 def configure yield @configuration end |
#valid!(request) ⇒ nil
Validate a request object from Rack. Raise an error if it is not valid.
29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/alexa_verifier/verifier.rb', line 29 def valid!(request) signature_certificate_url = request.env['HTTP_SIGNATURECERTCHAINURL'] AlexaVerifier::Verifier::CertificateURIVerifier.valid!(signature_certificate_url) if @configuration.verify_uri? raw_body = request.body.read request.body && request.body.rewind # call the rewind method if it exists (handles Sinatra specifically) check_that_request_is_timely(raw_body) if @configuration.verify_timeliness? check_that_request_is_valid(signature_certificate_url, request, raw_body) true end |
#valid?(request) ⇒ Boolean
Validate a request object from Rack. Return a boolean.
49 50 51 52 53 54 55 56 57 58 59 |
# File 'lib/alexa_verifier/verifier.rb', line 49 def valid?(request) begin valid!(request) rescue AlexaVerifier::BaseError => e puts e return false end true end |