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 |