diff --git a/crt/aws-crt-cpp b/crt/aws-crt-cpp index 25a2e61972f5..19d1cb67f940 160000 --- a/crt/aws-crt-cpp +++ b/crt/aws-crt-cpp @@ -1 +1 @@ -Subproject commit 25a2e61972f5a0d517c6dc62533fdc7d7bd122a1 +Subproject commit 19d1cb67f94011561368d508583efa5308618712 diff --git a/prefetch_crt_dependency.sh b/prefetch_crt_dependency.sh index a559e2eb7b2b..c8b2a48cba4d 100755 --- a/prefetch_crt_dependency.sh +++ b/prefetch_crt_dependency.sh @@ -3,13 +3,13 @@ # SPDX-License-Identifier: Apache-2.0. CRT_URI_PREFIX=https://codeload.github.com/awslabs -CRT_URI=${CRT_URI_PREFIX}/aws-crt-cpp/zip/25a2e61972f5a0d517c6dc62533fdc7d7bd122a1 # v0.37.4 +CRT_URI=${CRT_URI_PREFIX}/aws-crt-cpp/zip/19d1cb67f94011561368d508583efa5308618712 # v0.38.3 AWS_C_AUTH_URI=${CRT_URI_PREFIX}/aws-c-auth/zip/fc4b87655e5cd3921f18d1859193c74af4102071 # v0.10.1 AWS_C_CAL_URI=${CRT_URI_PREFIX}/aws-c-cal/zip/1cb9412158890201a6ffceed779f90fe1f48180c # v0.9.13 AWS_C_COMMON_URI=${CRT_URI_PREFIX}/aws-c-common/zip/95515a8b1ff40d5bb14f965ca4cbbe99ad1843df # v0.12.6 AWS_C_COMPRESSION_URI=${CRT_URI_PREFIX}/aws-c-compression/zip/d8264e64f698341eb03039b96b4f44702a9b3f83 # v0.3.2 -AWS_C_EVENT_STREAM_URI=${CRT_URI_PREFIX}/aws-c-event-stream/zip/c741f95e9050a1a4bed4b3aa7543bd3e024f6e56 # v0.6.0 +AWS_C_EVENT_STREAM_URI=${CRT_URI_PREFIX}/aws-c-event-stream/zip/66cafb1d8bb1bfeb62a7601ce03d1a6fcd4798ed # v0.6.1 AWS_C_HTTP_URI=${CRT_URI_PREFIX}/aws-c-http/zip/0d8e1a933f46b8af984dfc8168ebcdf32748c184 # v0.10.11 AWS_C_IO_URI=${CRT_URI_PREFIX}/aws-c-io/zip/bfb0819d3906502483611ce832a5ec6b897c8421 # v0.26.1 AWS_C_MQTT_URI=${CRT_URI_PREFIX}/aws-c-mqtt/zip/41b6a7d6d566a56eff69743df66c077d56a80c9d # v0.14.0 diff --git a/src/aws-cpp-sdk-core/source/auth/ProfileCredentialsProvider.cpp b/src/aws-cpp-sdk-core/source/auth/ProfileCredentialsProvider.cpp index 04878b34916e..7ce8c7109db8 100644 --- a/src/aws-cpp-sdk-core/source/auth/ProfileCredentialsProvider.cpp +++ b/src/aws-cpp-sdk-core/source/auth/ProfileCredentialsProvider.cpp @@ -1,9 +1,15 @@ +/** + * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. + * SPDX-License-Identifier: Apache-2.0. + */ +#include #include #include #include #include #include #include +#include #include @@ -17,6 +23,23 @@ const char PROFILE_AWS_CREDENTIALS_FILE[] = "AWS_SHARED_CREDENTIALS_FILE"; const char PROFILE_DEFAULT_CREDENTIALS_FILE[] = "credentials"; const char PROFILE_PROFILE_DIRECTORY[] = ".aws"; const long DEFAULT_REFRESH_RATE_MS = 300000; + +std::shared_ptr GetProfileCrtProvider(const char* profile) { + CredentialsProviderProfileConfig config{}; + config.ProfileNameOverride = Aws::Crt::ByteCursorFromCString(profile); + config.Bootstrap = Aws::GetDefaultClientBootstrap(); + + Aws::Crt::Http::ProxyEnvVarOptions options{}; + options.proxyEnvVarType = Aws::Crt::Http::ProxyEnvVarType::Enabled; + options.connectionType = Aws::Crt::Http::AwsHttpProxyConnectionType::Legacy; + const auto tlsOptions = Aws::GetDefaultTlsConnectionOptions(); + if (tlsOptions) { + options.TlsOptions = *tlsOptions; + } + config.ProxyEnvVarOptions = options; + + return CredentialsProvider::CreateCredentialsProviderProfile(config); +} } // namespace class ProfileCredentialsProvider::ProfileCredentialsProviderImp : public CrtCredentialsProvider { @@ -32,9 +55,7 @@ class ProfileCredentialsProvider::ProfileCredentialsProviderImp : public CrtCred ProfileCredentialsProviderImp(const char* profile) : CrtCredentialsProvider( [profile]() -> std::shared_ptr { - CredentialsProviderProfileConfig config; - config.ProfileNameOverride = Aws::Crt::ByteCursorFromCString(profile); - return CredentialsProvider::CreateCredentialsProviderProfile(config); + return GetProfileCrtProvider(profile); }, std::chrono::milliseconds(DEFAULT_REFRESH_RATE_MS), UserAgentFeature::CREDENTIALS_PROFILE, "ProfileCredentialsProvider") {} diff --git a/src/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp b/src/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp index 86833a144e20..b7180d46a84a 100644 --- a/src/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp +++ b/src/aws-cpp-sdk-core/source/auth/STSCredentialsProvider.cpp @@ -35,6 +35,14 @@ std::shared_ptr GetSTSCrtProvider( }() .c_str(); + Aws::Crt::Http::ProxyEnvVarOptions options{}; + options.proxyEnvVarType = Aws::Crt::Http::ProxyEnvVarType::Enabled; + options.connectionType = Aws::Crt::Http::AwsHttpProxyConnectionType::Legacy; + if (tlsOptions) { + options.TlsOptions = *tlsOptions; + } + stsConfig.ProxyEnvVarOptions = options; + return Aws::Crt::Auth::CredentialsProvider::CreateCredentialsProviderSTSWebIdentity(stsConfig); } } // namespace