Class: AWS::Core::CredentialProviders::SessionProvider
- Inherits:
-
Object
- Object
- AWS::Core::CredentialProviders::SessionProvider
- 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
Constants included from Provider
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(long_term_credentials) ⇒ SessionProvider
constructor
A new instance of SessionProvider.
-
#refresh ⇒ nil
Clears out cached/memoized credentials.
Methods included from Provider
#access_key_id, #credentials, #secret_access_key, #session_token
Constructor Details
#initialize(long_term_credentials) ⇒ SessionProvider
Returns a new instance of SessionProvider.
340 341 342 343 344 345 346 |
# File 'lib/aws/core/credential_providers.rb', line 340 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
323 324 325 326 327 328 329 |
# File 'lib/aws/core/credential_providers.rb', line 323 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
#refresh ⇒ nil
Clears out cached/memoized credentials. Causes the provider to refetch credentials from the source.
354 355 356 357 |
# File 'lib/aws/core/credential_providers.rb', line 354 def refresh refresh_session orig_refresh end |