Skip to content

Commit 3c78890

Browse files
committed
adding formatting
1 parent 57ccc7b commit 3c78890

File tree

3 files changed

+1041
-1093
lines changed

3 files changed

+1041
-1093
lines changed

src/aws-cpp-sdk-core/include/aws/core/auth/AWSCredentialsProviderChain.h

Lines changed: 54 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -6,69 +6,68 @@
66
#pragma once
77

88
#include <aws/core/Core_EXPORTS.h>
9-
#include <aws/core/utils/memory/stl/AWSVector.h>
109
#include <aws/core/auth/AWSCredentialsProvider.h>
11-
#include <memory>
10+
#include <aws/core/utils/memory/stl/AWSVector.h>
1211

13-
namespace Aws
14-
{
15-
namespace Auth
16-
{
17-
/**
18-
* Abstract class for providing chains of credentials providers. When a credentials provider in the chain returns empty credentials,
19-
* We go on to the next provider until we have either exhausted the installed providers in the chain or something returns non-empty credentials.
20-
*/
21-
class AWS_CORE_API AWSCredentialsProviderChain : public AWSCredentialsProvider
22-
{
23-
public:
24-
virtual ~AWSCredentialsProviderChain() = default;
12+
#include <memory>
2513

26-
/**
27-
* When a credentials provider in the chain returns empty credentials,
28-
* We go on to the next provider until we have either exhausted the installed providers in the chain or something returns non-empty credentials.
29-
*/
30-
virtual AWSCredentials GetAWSCredentials();
14+
namespace Aws {
15+
namespace Auth {
16+
/**
17+
* Abstract class for providing chains of credentials providers. When a credentials provider in the chain returns empty credentials,
18+
* We go on to the next provider until we have either exhausted the installed providers in the chain or something returns non-empty
19+
* credentials.
20+
*/
21+
class AWS_CORE_API AWSCredentialsProviderChain : public AWSCredentialsProvider {
22+
public:
23+
virtual ~AWSCredentialsProviderChain() = default;
3124

32-
/**
33-
* Gets all providers stored in this chain.
34-
*/
35-
const Aws::Vector<std::shared_ptr<AWSCredentialsProvider>>& GetProviders() const { return m_providerChain; }
25+
/**
26+
* When a credentials provider in the chain returns empty credentials,
27+
* We go on to the next provider until we have either exhausted the installed providers in the chain or something returns non-empty
28+
* credentials.
29+
*/
30+
virtual AWSCredentials GetAWSCredentials();
3631

37-
protected:
38-
/**
39-
* This class is only allowed to be initialized by subclasses.
40-
*/
41-
AWSCredentialsProviderChain() = default;
32+
/**
33+
* Gets all providers stored in this chain.
34+
*/
35+
const Aws::Vector<std::shared_ptr<AWSCredentialsProvider>>& GetProviders() const { return m_providerChain; }
4236

43-
/**
44-
* Adds a provider to the back of the chain.
45-
*/
46-
void AddProvider(const std::shared_ptr<AWSCredentialsProvider>& provider) { m_providerChain.push_back(provider); }
37+
protected:
38+
/**
39+
* This class is only allowed to be initialized by subclasses.
40+
*/
41+
AWSCredentialsProviderChain() = default;
4742

43+
/**
44+
* Adds a provider to the back of the chain.
45+
*/
46+
void AddProvider(const std::shared_ptr<AWSCredentialsProvider>& provider) { m_providerChain.push_back(provider); }
4847

49-
private:
50-
Aws::Vector<std::shared_ptr<AWSCredentialsProvider> > m_providerChain;
51-
std::shared_ptr<AWSCredentialsProvider> m_cachedProvider;
52-
mutable Aws::Utils::Threading::ReaderWriterLock m_cachedProviderLock;
53-
};
48+
private:
49+
Aws::Vector<std::shared_ptr<AWSCredentialsProvider>> m_providerChain;
50+
std::shared_ptr<AWSCredentialsProvider> m_cachedProvider;
51+
mutable Aws::Utils::Threading::ReaderWriterLock m_cachedProviderLock;
52+
};
5453

55-
/**
56-
* Creates an AWSCredentialsProviderChain which uses in order EnvironmentAWSCredentialsProvider, ProfileConfigFileAWSCredentialsProvider,
57-
* ProcessCredentialsProvider, STSAssumeRoleWebIdentityCredentialsProvider and SSOCredentialsProvider.
58-
*/
59-
class AWS_CORE_API DefaultAWSCredentialsProviderChain : public AWSCredentialsProviderChain
60-
{
61-
public:
62-
/**
63-
* Initializes the provider chain using ClientConfiguration settings.
64-
* If no configuration is provided, initializes with default providers in the following order:
65-
* EnvironmentAWSCredentialsProvider, ProfileConfigFileAWSCredentialsProvider,
66-
* ProcessCredentialsProvider, STSAssumeRoleWebIdentityCredentialsProvider and SSOCredentialsProvider.
67-
*/
68-
DefaultAWSCredentialsProviderChain(const Aws::Client::CredentialProviderConfiguration& config = Aws::Client::CredentialProviderConfiguration());
54+
/**
55+
* Creates an AWSCredentialsProviderChain which uses in order EnvironmentAWSCredentialsProvider, ProfileConfigFileAWSCredentialsProvider,
56+
* ProcessCredentialsProvider, STSAssumeRoleWebIdentityCredentialsProvider and SSOCredentialsProvider.
57+
*/
58+
class AWS_CORE_API DefaultAWSCredentialsProviderChain : public AWSCredentialsProviderChain {
59+
public:
60+
/**
61+
* Initializes the provider chain using ClientConfiguration settings.
62+
* If no configuration is provided, initializes with default providers in the following order:
63+
* EnvironmentAWSCredentialsProvider, ProfileConfigFileAWSCredentialsProvider,
64+
* ProcessCredentialsProvider, STSAssumeRoleWebIdentityCredentialsProvider and SSOCredentialsProvider.
65+
*/
66+
DefaultAWSCredentialsProviderChain(
67+
const Aws::Client::CredentialProviderConfiguration& config = Aws::Client::CredentialProviderConfiguration());
6968

70-
DefaultAWSCredentialsProviderChain(const DefaultAWSCredentialsProviderChain& chain);
71-
};
69+
DefaultAWSCredentialsProviderChain(const DefaultAWSCredentialsProviderChain& chain);
70+
};
7271

73-
} // namespace Auth
74-
} // namespace Aws
72+
} // namespace Auth
73+
} // namespace Aws

src/aws-cpp-sdk-core/source/auth/AWSCredentialsProviderChain.cpp

Lines changed: 66 additions & 72 deletions
Original file line numberDiff line numberDiff line change
@@ -4,99 +4,93 @@
44
*/
55

66
#include <aws/core/auth/AWSCredentialsProviderChain.h>
7-
#include <aws/core/auth/STSCredentialsProvider.h>
87
#include <aws/core/auth/SSOCredentialsProvider.h>
8+
#include <aws/core/auth/STSCredentialsProvider.h>
99
#include <aws/core/platform/Environment.h>
10-
#include <aws/core/utils/memory/AWSMemory.h>
1110
#include <aws/core/utils/StringUtils.h>
1211
#include <aws/core/utils/logging/LogMacros.h>
12+
#include <aws/core/utils/memory/AWSMemory.h>
1313

1414
using namespace Aws::Auth;
1515
using namespace Aws::Utils::Threading;
1616

1717
static const char AWS_EC2_METADATA_DISABLED[] = "AWS_EC2_METADATA_DISABLED";
1818
static const char DefaultCredentialsProviderChainTag[] = "DefaultAWSCredentialsProviderChain";
1919

20-
AWSCredentials AWSCredentialsProviderChain::GetAWSCredentials()
21-
{
22-
ReaderLockGuard lock(m_cachedProviderLock);
23-
if (m_cachedProvider) {
24-
AWSCredentials credentials = m_cachedProvider->GetAWSCredentials();
25-
if (!credentials.GetAWSAccessKeyId().empty() && !credentials.GetAWSSecretKey().empty())
26-
{
27-
return credentials;
28-
}
20+
AWSCredentials AWSCredentialsProviderChain::GetAWSCredentials() {
21+
ReaderLockGuard lock(m_cachedProviderLock);
22+
if (m_cachedProvider) {
23+
AWSCredentials credentials = m_cachedProvider->GetAWSCredentials();
24+
if (!credentials.GetAWSAccessKeyId().empty() && !credentials.GetAWSSecretKey().empty()) {
25+
return credentials;
2926
}
30-
lock.UpgradeToWriterLock();
31-
for (auto&& credentialsProvider : m_providerChain)
32-
{
33-
AWSCredentials credentials = credentialsProvider->GetAWSCredentials();
34-
if (!credentials.GetAWSAccessKeyId().empty() && !credentials.GetAWSSecretKey().empty())
35-
{
36-
m_cachedProvider = credentialsProvider;
37-
return credentials;
38-
}
27+
}
28+
lock.UpgradeToWriterLock();
29+
for (auto&& credentialsProvider : m_providerChain) {
30+
AWSCredentials credentials = credentialsProvider->GetAWSCredentials();
31+
if (!credentials.GetAWSAccessKeyId().empty() && !credentials.GetAWSSecretKey().empty()) {
32+
m_cachedProvider = credentialsProvider;
33+
return credentials;
3934
}
40-
return AWSCredentials();
35+
}
36+
return AWSCredentials();
4137
}
4238

43-
DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain(const Aws::Client::CredentialProviderConfiguration& config) : AWSCredentialsProviderChain()
44-
{
45-
AddProvider(Aws::MakeShared<EnvironmentAWSCredentialsProvider>(DefaultCredentialsProviderChainTag));
46-
if (config.profile.empty()) {
47-
AddProvider(Aws::MakeShared<ProfileConfigFileAWSCredentialsProvider>(DefaultCredentialsProviderChainTag));
48-
AddProvider(Aws::MakeShared<ProcessCredentialsProvider>(DefaultCredentialsProviderChainTag));
49-
}
50-
else {
51-
AddProvider(Aws::MakeShared<ProfileConfigFileAWSCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile.c_str()));
52-
AddProvider(Aws::MakeShared<ProcessCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile));
53-
}
54-
AddProvider(Aws::MakeShared<STSAssumeRoleWebIdentityCredentialsProvider>(DefaultCredentialsProviderChainTag));
55-
if (config.profile.empty()) {
56-
AddProvider(Aws::MakeShared<SSOCredentialsProvider>(DefaultCredentialsProviderChainTag));
57-
}
58-
else {
59-
AddProvider(Aws::MakeShared<SSOCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile));
60-
}
61-
// General HTTP Credentials (prev. known as ECS TaskRole credentials) only available when ENVIRONMENT VARIABLE is set
62-
const auto relativeUri = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_RELATIVE_URI);
63-
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag, "The environment variable value " << GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
64-
<< " is " << relativeUri);
39+
DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain(const Aws::Client::CredentialProviderConfiguration& config)
40+
: AWSCredentialsProviderChain() {
41+
AddProvider(Aws::MakeShared<EnvironmentAWSCredentialsProvider>(DefaultCredentialsProviderChainTag));
42+
if (config.profile.empty()) {
43+
AddProvider(Aws::MakeShared<ProfileConfigFileAWSCredentialsProvider>(DefaultCredentialsProviderChainTag));
44+
AddProvider(Aws::MakeShared<ProcessCredentialsProvider>(DefaultCredentialsProviderChainTag));
45+
} else {
46+
AddProvider(Aws::MakeShared<ProfileConfigFileAWSCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile.c_str()));
47+
AddProvider(Aws::MakeShared<ProcessCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile));
48+
}
49+
AddProvider(Aws::MakeShared<STSAssumeRoleWebIdentityCredentialsProvider>(DefaultCredentialsProviderChainTag));
50+
if (config.profile.empty()) {
51+
AddProvider(Aws::MakeShared<SSOCredentialsProvider>(DefaultCredentialsProviderChainTag));
52+
} else {
53+
AddProvider(Aws::MakeShared<SSOCredentialsProvider>(DefaultCredentialsProviderChainTag, config.profile));
54+
}
55+
// General HTTP Credentials (prev. known as ECS TaskRole credentials) only available when ENVIRONMENT VARIABLE is set
56+
const auto relativeUri = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_RELATIVE_URI);
57+
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag, "The environment variable value "
58+
<< GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_RELATIVE_URI
59+
<< " is " << relativeUri);
6560

66-
const auto absoluteUri = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_FULL_URI);
67-
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag, "The environment variable value " << GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_FULL_URI
68-
<< " is " << absoluteUri);
61+
const auto absoluteUri = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_FULL_URI);
62+
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag, "The environment variable value "
63+
<< GeneralHTTPCredentialsProvider::AWS_CONTAINER_CREDENTIALS_FULL_URI
64+
<< " is " << absoluteUri);
6965

70-
const auto ec2MetadataDisabled = Aws::Environment::GetEnv(AWS_EC2_METADATA_DISABLED);
71-
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag, "The environment variable value " << AWS_EC2_METADATA_DISABLED
72-
<< " is " << ec2MetadataDisabled);
66+
const auto ec2MetadataDisabled = Aws::Environment::GetEnv(AWS_EC2_METADATA_DISABLED);
67+
AWS_LOGSTREAM_DEBUG(DefaultCredentialsProviderChainTag,
68+
"The environment variable value " << AWS_EC2_METADATA_DISABLED << " is " << ec2MetadataDisabled);
7369

74-
if (!relativeUri.empty() || !absoluteUri.empty())
75-
{
76-
const Aws::String token = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_AUTHORIZATION_TOKEN);
77-
const Aws::String tokenPath = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE);
70+
if (!relativeUri.empty() || !absoluteUri.empty()) {
71+
const Aws::String token = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_AUTHORIZATION_TOKEN);
72+
const Aws::String tokenPath = Aws::Environment::GetEnv(GeneralHTTPCredentialsProvider::AWS_CONTAINER_AUTHORIZATION_TOKEN_FILE);
7873

79-
auto genProvider = Aws::MakeShared<GeneralHTTPCredentialsProvider>(DefaultCredentialsProviderChainTag,
80-
relativeUri, absoluteUri, token, tokenPath);
81-
if (genProvider && genProvider->IsValid()) {
82-
AddProvider(std::move(genProvider));
83-
auto& uri = !relativeUri.empty() ? relativeUri : absoluteUri;
84-
AWS_LOGSTREAM_INFO(DefaultCredentialsProviderChainTag, "Added General HTTP / ECS credentials provider with ur: ["
85-
<< uri << "] to the provider chain with a" << ((token.empty() && tokenPath.empty()) ? "n empty " : " non-empty ")
86-
<< "authorization token.");
87-
} else {
88-
AWS_LOGSTREAM_ERROR(DefaultCredentialsProviderChainTag, "Unable to create GeneralHTTPCredentialsProvider");
89-
}
90-
}
91-
else if (Aws::Utils::StringUtils::ToLower(ec2MetadataDisabled.c_str()) != "true")
92-
{
93-
AddProvider(Aws::MakeShared<InstanceProfileCredentialsProvider>(DefaultCredentialsProviderChainTag));
94-
AWS_LOGSTREAM_INFO(DefaultCredentialsProviderChainTag, "Added EC2 metadata service credentials provider to the provider chain.");
74+
auto genProvider =
75+
Aws::MakeShared<GeneralHTTPCredentialsProvider>(DefaultCredentialsProviderChainTag, relativeUri, absoluteUri, token, tokenPath);
76+
if (genProvider && genProvider->IsValid()) {
77+
AddProvider(std::move(genProvider));
78+
auto& uri = !relativeUri.empty() ? relativeUri : absoluteUri;
79+
AWS_LOGSTREAM_INFO(DefaultCredentialsProviderChainTag, "Added General HTTP / ECS credentials provider with ur: ["
80+
<< uri << "] to the provider chain with a"
81+
<< ((token.empty() && tokenPath.empty()) ? "n empty " : " non-empty ")
82+
<< "authorization token.");
83+
} else {
84+
AWS_LOGSTREAM_ERROR(DefaultCredentialsProviderChainTag, "Unable to create GeneralHTTPCredentialsProvider");
9585
}
86+
} else if (Aws::Utils::StringUtils::ToLower(ec2MetadataDisabled.c_str()) != "true") {
87+
AddProvider(Aws::MakeShared<InstanceProfileCredentialsProvider>(DefaultCredentialsProviderChainTag));
88+
AWS_LOGSTREAM_INFO(DefaultCredentialsProviderChainTag, "Added EC2 metadata service credentials provider to the provider chain.");
89+
}
9690
}
9791

9892
DefaultAWSCredentialsProviderChain::DefaultAWSCredentialsProviderChain(const DefaultAWSCredentialsProviderChain& chain) {
99-
for (const auto& provider: chain.GetProviders()) {
100-
AddProvider(provider);
101-
}
93+
for (const auto& provider : chain.GetProviders()) {
94+
AddProvider(provider);
95+
}
10296
}

0 commit comments

Comments
 (0)