@private
# File lib/aws/core/session_signer.rb, line 25 def self.for config @create_mutex.synchronize do @session_signers ||= {} @session_signers[config.signer.access_key_id] ||= self.new(config) end end
# File lib/aws/core/session_signer.rb, line 32 def initialize config @config = config @session_mutex = Mutex.new end
# File lib/aws/core/session_signer.rb, line 41 def access_key_id session.credentials[:access_key_id] end
# File lib/aws/core/session_signer.rb, line 53 def refresh_session sts = AWS::STS.new(:config => @config, :use_ssl => true) @session_mutex.synchronize do @session = sts.new_session end end
# File lib/aws/core/session_signer.rb, line 45 def secret_access_key session.credentials[:secret_access_key] end
# File lib/aws/core/session_signer.rb, line 49 def session_token session.credentials[:session_token] end
# File lib/aws/core/session_signer.rb, line 37 def sign *args short_term_signer.sign(*args) end
# File lib/aws/core/session_signer.rb, line 61 def get_session local_session = nil @session_mutex.synchronize do local_session = @session end local_session end
# File lib/aws/core/session_signer.rb, line 70 def session session = get_session if session.nil? refresh_session session = get_session end session end
# File lib/aws/core/session_signer.rb, line 84 def short_term_signer DefaultSigner.new(access_key_id, secret_access_key, session_token) end