Sha256: b89eb1db9141637082a6c31f95da8d87a5f1ba7107ff134ac7aebec75d5c16fa
Contents?: true
Size: 1.3 KB
Versions: 1
Compression:
Stored size: 1.3 KB
Contents
module Aws module Signers class V2 < Base # @param [Http::Request] http_request def sign(http_request) params = http_request.body.param_list params.set('AWSAccessKeyId', @credentials.access_key_id) params.set('SecurityToken', @credentials.session_token) if @credentials.session_token params.set('Timestamp', Time.now.utc.strftime('%Y-%m-%dT%H:%M:%SZ')) params.set('SignatureVersion', '2') params.set('SignatureMethod', 'HmacSHA256') params.delete('Signature') params.set('Signature', signature(http_request, params)) http_request.body = params.to_io end private def signature(http_request, params) sha256_hmac(string_to_sign(http_request, params)) end def string_to_sign(http_request, params) [ http_request.http_method, host(http_request), http_request.pathname, params.to_s, ].join("\n") end def host(http_request) endpoint = http_request.endpoint host = endpoint.host.downcase if (endpoint.http? && endpoint.port != 80) || (endpoint.https? && endpoint.port != 443) then host += ":#{endpoint.port}" end host end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
aws-sdk-core-2.0.0.rc1 | lib/aws/signers/v2.rb |