class Azure::Table::Auth::SharedKey
Attributes
The account name
Public Class Methods
Public: Initialize the Signer.
account_name
- The account name. Defaults to the one in the
global configuration.
access_key - The access_key encoded in Base64. Defaults to the
one in the global configuration.
Azure::Core::Auth::Signer::new
# File lib/azure/table/auth/shared_key.rb, line 33 def initialize(account_name=Azure.config.storage_account_name, access_key=Azure.config.storage_access_key) @account_name = account_name super(access_key) end
Public Instance Methods
Calculate the Canonicalized Resource string for a request.
uri - The request’s URI.
Returns a String
with the canonicalized resource.
# File lib/azure/table/auth/shared_key.rb, line 79 def canonicalized_resource(uri) resource = "/%s%s" % [account_name, uri.path] comp = CGI.parse(uri.query.to_s).fetch("comp", nil) if (comp) resource = [resource, "comp=" + comp[0]].join("?") end resource end
Public: The name of the strategy.
Returns a String
.
# File lib/azure/table/auth/shared_key.rb, line 41 def name "SharedKey" end
Public: Generate a request signature.
verb - The HTTP request method. uri - The URI of the request we’re signing. headers - A Hash of HTTP request headers.
Returns a Base64 String
signed with HMAC.
Azure::Core::Auth::Signer#sign
# File lib/azure/table/auth/shared_key.rb, line 52 def sign(method, uri, headers) signature = super(signable_string(method, uri, headers)) return "#{account_name}:#{signature}" end
Generate the string to sign.
verb - The HTTP request method. uri - The URI of the request we’re signing. headers - A Hash of HTTP request headers.
Returns a plain text string.
# File lib/azure/table/auth/shared_key.rb, line 64 def signable_string(method, uri, headers) [ method.to_s.upcase, headers.fetch("Content-MD5", ""), headers.fetch("Content-Type", ""), headers.fetch("Date") { headers.fetch("x-ms-date") }, canonicalized_resource(uri) ].join("\n") end