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.
-
#profile ⇒ Linzer::Signature::Profile::Base, ...
readonly
Optional signing profile used during signature generation.
Instance Method Summary collapse
-
#default_covered_components ⇒ Array<String>
(also: #default_components)
Returns the default covered components.
-
#initialize(key:, params: {}, covered_components: default_components, profile: nil) ⇒ 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, profile: nil) ⇒ SignatureFeature
Creates a new signature feature.
62 63 64 65 66 67 |
# File 'lib/linzer/http/signature_feature.rb', line 62 def initialize(key:, params: {}, covered_components: default_components, profile: nil) @fields = Array(covered_components) @key = validate_key(key) @params = Hash(params) @profile = profile end |
Instance Attribute Details
#fields ⇒ Array<String> (readonly)
Returns The components to include in signatures.
70 71 72 |
# File 'lib/linzer/http/signature_feature.rb', line 70 def fields @fields end |
#params ⇒ Hash (readonly)
Returns Additional signature parameters.
73 74 75 |
# File 'lib/linzer/http/signature_feature.rb', line 73 def params @params end |
#profile ⇒ Linzer::Signature::Profile::Base, ... (readonly)
Returns Optional signing profile used during signature generation.
77 78 79 |
# File 'lib/linzer/http/signature_feature.rb', line 77 def profile @profile end |
Instance Method Details
#default_covered_components ⇒ Array<String> Also known as: default_components
Returns the default covered components.
96 97 98 |
# File 'lib/linzer/http/signature_feature.rb', line 96 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.
85 86 87 88 89 90 91 92 |
# File 'lib/linzer/http/signature_feature.rb', line 85 def wrap_request(request) Linzer.sign! request, key: key, components: fields, params: params, profile: profile request end |