class AWS::Core::SessionSigner

@private

Public Class Methods

for(config) click to toggle source
# 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
new(config) click to toggle source
# File lib/aws/core/session_signer.rb, line 32
def initialize config
  @config = config
  @session_mutex = Mutex.new
end

Public Instance Methods

access_key_id() click to toggle source
# File lib/aws/core/session_signer.rb, line 41
def access_key_id
  session.credentials[:access_key_id]
end
refresh_session() click to toggle source
# 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
secret_access_key() click to toggle source
# File lib/aws/core/session_signer.rb, line 45
def secret_access_key
  session.credentials[:secret_access_key]
end
session_token() click to toggle source
# File lib/aws/core/session_signer.rb, line 49
def session_token
  session.credentials[:session_token]
end
sign(*args) click to toggle source
# File lib/aws/core/session_signer.rb, line 37
def sign *args
  short_term_signer.sign(*args)
end

Protected Instance Methods

get_session() click to toggle source
# 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
session() click to toggle source
# 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
short_term_signer() click to toggle source
# File lib/aws/core/session_signer.rb, line 84
def short_term_signer
  DefaultSigner.new(access_key_id, secret_access_key, session_token)
end