class AWS::Core::CredentialProviders::SessionProvider
requires session credentials.
This session provider is currently only used for DynamoDB which
set of credentials.
Calling {#refresh} causes the session provider to request a new
It then returns the short term credential set from STS.
and ‘:secret_access_key`) and requests a session from STS.
The session provider consumes long term credentials (`:access_key_id`
# Session Credential Provider
def cached_session
-
(nil, STS::Session)
- Returns nil if a session has not
def cached_session local_session = nil @session_mutex.synchronize do local_session = @session end local_session end
def for long_term_credentials
-
long_term_credentials
(Hash
) -- A hash of credentials with
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
def get_credentials
def get_credentials session = cached_session if session.nil? refresh_session session = cached_session end session.credentials end
def initialize long_term_credentials
-
long_term_credentials
(Hash
) -- A hash of credentials with
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
def refresh
def refresh refresh_session orig_refresh end
def refresh_session
-
(nil)
-
def refresh_session sts = AWS::STS.new(@static.credentials.merge(:use_ssl => true)) @session_mutex.synchronize do @session = sts.new_session end nil end