You are viewing documentation for version 1 of the AWS SDK for Ruby. Version 2 documentation can be found here.

Class: AWS::Core::CredentialProviders::SessionProvider

Inherits:
Object
  • Object
show all
Includes:
Provider
Defined in:
lib/aws/core/credential_providers.rb

Overview

Session Credential Provider

The session provider consumes long term credentials (:access_key_id and :secret_access_key) and requests a session from STS. It then returns the short term credential set from STS.

Calling #refresh causes the session provider to request a new set of credentials.

This session provider is currently only used for DynamoDB which requires session credentials.

Constant Summary

Constant Summary

Constants included from Provider

Provider::KEYS

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Provider

#access_key_id, #credentials, #secret_access_key, #session_token, #set?

Constructor Details

#initialize(long_term_credentials) ⇒ SessionProvider

Returns a new instance of SessionProvider

Parameters:

  • long_term_credentials (Hash)

    A hash of credentials with :access_key_id and :secret_access_key (but not :session_token).



520
521
522
523
524
525
526
# File 'lib/aws/core/credential_providers.rb', line 520

def initialize long_term_credentials
  @static = StaticProvider.new(long_term_credentials)
  if @static.session_token
    raise ArgumentError, 'invalid option :session_token'
  end
  @session_mutex = Mutex.new
end

Class Method Details

.for(long_term_credentials) ⇒ Object

Parameters:

  • long_term_credentials (Hash)

    A hash of credentials with :access_key_id and :secret_access_key (but not :session_token).



503
504
505
506
507
508
509
# File 'lib/aws/core/credential_providers.rb', line 503

def for long_term_credentials
  @create_mutex.synchronize do
    @session_providers ||= {}
    @session_providers[long_term_credentials[:access_key_id]] =
      self.new(long_term_credentials)
  end
end

Instance Method Details

#refreshnil

Clears out cached/memoized credentials. Causes the provider to refetch credentials from the source.

Returns:

  • (nil)


534
535
536
537
# File 'lib/aws/core/credential_providers.rb', line 534

def refresh
  refresh_session
  orig_refresh
end