Class: AwsMfa::CredentialsLoader

Inherits:
Object
  • Object
show all
Defined in:
lib/aws_mfa/credentials_loader.rb

Constant Summary collapse

MFA_EXPIRATION_PERIOD_IN_SECONDS =
3600

Instance Method Summary collapse

Constructor Details

#initialize(mydrive_credentials_cache_dir) ⇒ CredentialsLoader

Returns a new instance of CredentialsLoader.



9
10
11
# File 'lib/aws_mfa/credentials_loader.rb', line 9

def initialize(mydrive_credentials_cache_dir)
  @mydrive_credentials_cache_dir = mydrive_credentials_cache_dir
end

Instance Method Details

#load_credentials(profile_config) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/aws_mfa/credentials_loader.rb', line 13

def load_credentials(profile_config)
  credentials_file = File.join(mydrive_credentials_cache_dir, build_credentials_file_name(profile_config))

  if File.readable?(credentials_file) && token_not_expired?(credentials_file)
    credentials = File.read(credentials_file)
  else
    credentials = load_credentials_from_aws(profile_config)
    write_credentials_to_file(credentials_file, credentials)
  end

  JSON.parse(credentials).fetch('Credentials')
end