Class: Twilio::Security::RequestValidator
- Inherits:
-
Object
- Object
- Twilio::Security::RequestValidator
- Defined in:
- lib/twilio-ruby/security/request_validator.rb
Instance Method Summary collapse
- #build_signature_for(url, params) ⇒ Object
-
#initialize(auth_token = nil) ⇒ RequestValidator
constructor
A new instance of RequestValidator.
- #validate(url, params, signature) ⇒ Object
Constructor Details
#initialize(auth_token = nil) ⇒ RequestValidator
Returns a new instance of RequestValidator.
4 5 6 7 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 4 def initialize(auth_token = nil) @auth_token = auth_token raise ArgumentError, 'Auth token is required' if @auth_token.nil? end |
Instance Method Details
#build_signature_for(url, params) ⇒ Object
15 16 17 18 19 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 15 def build_signature_for(url, params) data = url + params.sort.join digest = OpenSSL::Digest.new('sha1') Base64.encode64(OpenSSL::HMAC.digest(digest, @auth_token, data)).strip end |
#validate(url, params, signature) ⇒ Object
9 10 11 12 13 |
# File 'lib/twilio-ruby/security/request_validator.rb', line 9 def validate(url, params, signature) params_hash = params_to_hash(params) expected = build_signature_for(url, params_hash) secure_compare(expected, signature) end |