Sha256: 03c71b0cbdfbff2aef046d049ff0429b0973a45830137022c1a1ebaefa0cbf0c

Contents?: true

Size: 1.59 KB

Versions: 43

Compression:

Stored size: 1.59 KB

Contents

# frozen_string_literal: true

require_relative "abstract_factory"
require_relative "../providers/assume_role_credentials"
require_relative "../providers/mfa_session_credentials"

class AwsAssumeRole::Credentials::Factories::AssumeRole < AwsAssumeRole::Credentials::Factories::AbstractFactory
    include AwsAssumeRole::Credentials::Factories
    type :credential_provider
    priority 20

    def initialize(options)
        logger.debug "AwsAssumeRole::Credentials::Factories::AssumeRole initiated with #{options}"
        return unless options[:profile] || options[:role_arn]
        if options[:profile]
            logger.debug "AwsAssumeRole: #{options[:profile]} found. Trying with profile"
            try_with_profile(options)
        else
            if options[:use_mfa]
                options[:credentials] = AwsAssumeRole::Credentials::Providers::MfaSessionCredentials.new(options).credentials
            end
            @credentials = AwsAssumeRole::Credentials::Providers::AssumeRoleCredentials.new(options)
        end
    end

    def try_with_profile(options)
        return unless AwsAssumeRole.shared_config.config_enabled?
        logger.debug "AwsAssumeRole: Shared Config enabled"
        @profile = options[:profile]
        @region = options[:region]
        @credentials = assume_role_with_profile(options)
        @region ||= AwsAssumeRole.shared_config.profile_region(@profile)
        @role_arn ||= AwsAssumeRole.shared_config.profile_role(@profile)
    end

    def assume_role_with_profile(options)
        AwsAssumeRole.shared_config.assume_role_credentials_from_config(options)
    end
end

Version data entries

43 entries across 43 versions & 1 rubygems

Version Path
aws_assume_role-1.2.3-universal-freebsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.3-universal-darwin lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.3-universal-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.3-universal-openbsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.3 lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.3-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2-universal-darwin lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2-universal-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2-universal-openbsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2-universal-freebsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.2 lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1 lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1-universal-openbsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1-universal-darwin lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1-universal-freebsd lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.1-universal-linux lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.0 lib/aws_assume_role/credentials/factories/assume_role.rb
aws_assume_role-1.2.0-linux lib/aws_assume_role/credentials/factories/assume_role.rb