module AwsAssumeRole::Store::Keyring
Constants
- KEYRING_KEY
Public Instance Methods
delete_credentials(id, backend: nil)
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 47 def delete_credentials(id, backend: nil) semaphore.synchronize do keyring(backend).delete_password(KEYRING_KEY, id) end end
fetch(id, backend: nil)
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 40 def fetch(id, backend: nil) logger.debug "Fetching #{id} from keyring" fetched = keyring(backend).get_password(KEYRING_KEY, id) raise Aws::Errors::NoSuchProfileError if fetched == "null" || fetched.nil? || !fetched JSON.parse(fetched, symbolize_names: true) end
keyring(backend = AwsAssumeRole::Config.backend)
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 31 def keyring(backend = AwsAssumeRole::Config.backend) keyrings[backend] ||= begin try_backend_plugin klass = backend ? "Keyring::Backend::#{backend}".constantize : nil logger.debug "Initializing #{klass} backend" ::Keyring.new(klass) end end
keyrings()
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 21 def keyrings @keyrings ||= {} end
save_credentials(id, credentials, expiration: nil, backend: nil)
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 53 def save_credentials(id, credentials, expiration: nil, backend: nil) credentials_to_persist = Serialization.credentials_to_hash(credentials) credentials_to_persist[:expiration] = expiration if expiration semaphore.synchronize do keyring(backend).delete_password(KEYRING_KEY, id) keyring(backend).set_password(KEYRING_KEY, id, credentials_to_persist.to_json) end end
semaphore()
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 17 def semaphore @semaphore ||= Mutex.new end
try_backend_plugin()
click to toggle source
# File lib/aws_assume_role/store/keyring.rb, line 25 def try_backend_plugin return if AwsAssumeRole::Config.backend_plugin.blank? logger.info "Attempting to load #{AwsAssumeRole::Config.backend_plugin} plugin" require AwsAssumeRole::Config.backend_plugin end