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 |