Class: GrandCloud::Authentication
- Defined in:
- lib/grand_cloud/authentication.rb
Instance Attribute Summary collapse
-
#secret_access_key ⇒ Object
readonly
Returns the value of attribute secret_access_key.
-
#snda_access_key_id ⇒ Object
readonly
Returns the value of attribute snda_access_key_id.
Instance Method Summary collapse
- #create_signature(options) ⇒ Object
- #generate_protocol_params(additional_params) ⇒ Object
- #generate_upload_params(request_params) ⇒ Object
-
#initialize(secret_access_key, snda_access_key_id) ⇒ Authentication
constructor
A new instance of Authentication.
Constructor Details
#initialize(secret_access_key, snda_access_key_id) ⇒ Authentication
Returns a new instance of Authentication.
8 9 10 |
# File 'lib/grand_cloud/authentication.rb', line 8 def initialize(secret_access_key, snda_access_key_id) @secret_access_key, @snda_access_key_id = secret_access_key, snda_access_key_id end |
Instance Attribute Details
#secret_access_key ⇒ Object (readonly)
Returns the value of attribute secret_access_key.
6 7 8 |
# File 'lib/grand_cloud/authentication.rb', line 6 def secret_access_key @secret_access_key end |
#snda_access_key_id ⇒ Object (readonly)
Returns the value of attribute snda_access_key_id.
6 7 8 |
# File 'lib/grand_cloud/authentication.rb', line 6 def snda_access_key_id @snda_access_key_id end |
Instance Method Details
#create_signature(options) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/grand_cloud/authentication.rb', line 12 def create_signature secret_access_key = @secret_access_key http_verb = [:method].to_s.upcase host = [:host] || DEFAULT_HOST_URL uri = [:uri] || '' protocal_params = [:protocal_params] partial_signature = "#{http_verb}\n#{host}\n#{uri}" partial_signature << "\n#{protocal_params}" unless protocal_params.nil? digest = OpenSSL::Digest::Digest.new("sha256") hmac = OpenSSL::HMAC.digest(digest, secret_access_key, partial_signature) Base64.encode64(hmac).chomp end |
#generate_protocol_params(additional_params) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/grand_cloud/authentication.rb', line 27 def generate_protocol_params additional_params { :Expires => format_time((DateTime.now+(1/24.00)).to_time), #:Expires => '2013-07-03 00:00:00', :SignatureMethod => 'HmacSHA256', :SndaAccessKeyId => @snda_access_key_id, :Timestamp => format_time(Time.now) #:Timestamp => '2013-07-02 11:36:11' }.merge!(additional_params ? additional_params : {}).sort.collect{|k,v| "#{k}=#{v}"}.join('&') end |
#generate_upload_params(request_params) ⇒ Object
38 39 40 41 42 43 |
# File 'lib/grand_cloud/authentication.rb', line 38 def generate_upload_params request_params request_params.merge!({ :SignatureMethod => 'HmacSHA256', :SndaAccessKeyId => @snda_access_key_id }).sort.collect{|k,v| "#{k}=#{v}"}.join('&') end |