Class: Linzer::HTTP::SignatureFeature
- Inherits:
-
HTTP::Feature
- Object
- HTTP::Feature
- Linzer::HTTP::SignatureFeature
- Defined in:
- lib/linzer/http/signature_feature.rb
Overview
This file must be explicitly required: ‘require “linzer/http/signature_feature”`
HTTP.rb gem feature for automatic request signing.
This feature integrates with the http.rb gem to automatically sign outgoing HTTP requests. It wraps each request before sending and adds the signature and signature-input headers.
Instance Attribute Summary collapse
-
#fields ⇒ Array<String>
readonly
The components to include in signatures.
-
#params ⇒ Hash
readonly
Additional signature parameters.
Instance Method Summary collapse
-
#default_covered_components ⇒ Array<String>
(also: #default_components)
Returns the default covered components.
-
#initialize(key:, params: {}, covered_components: default_components) ⇒ SignatureFeature
constructor
Creates a new signature feature.
-
#wrap_request(request) ⇒ HTTP::Request
Wraps an outgoing request to add signature headers.
Constructor Details
#initialize(key:, params: {}, covered_components: default_components) ⇒ SignatureFeature
Creates a new signature feature.
58 59 60 61 62 |
# File 'lib/linzer/http/signature_feature.rb', line 58 def initialize(key:, params: {}, covered_components: default_components) @fields = Array(covered_components) @key = validate_key(key) @params = Hash(params) end |
Instance Attribute Details
#fields ⇒ Array<String> (readonly)
Returns The components to include in signatures.
65 66 67 |
# File 'lib/linzer/http/signature_feature.rb', line 65 def fields @fields end |
#params ⇒ Hash (readonly)
Returns Additional signature parameters.
68 69 70 |
# File 'lib/linzer/http/signature_feature.rb', line 68 def params @params end |
Instance Method Details
#default_covered_components ⇒ Array<String> Also known as: default_components
Returns the default covered components.
85 86 87 |
# File 'lib/linzer/http/signature_feature.rb', line 85 def default_covered_components Linzer::Options::DEFAULT[:covered_components] end |
#wrap_request(request) ⇒ HTTP::Request
Wraps an outgoing request to add signature headers.
Called automatically by http.rb for each request.
76 77 78 79 80 81 |
# File 'lib/linzer/http/signature_feature.rb', line 76 def wrap_request(request) = Linzer::Message.new(request) signature = Linzer.sign(key, , fields, **params) request.headers.merge!(signature.to_h) request end |