From 7e3242ddf7529a46e5a30506f78894bce53feb0e Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Wed, 19 May 2021 10:08:38 +0100 Subject: [PATCH 1/2] Add server URI override for ECS Credential Provider --- src/Credentials/EcsCredentialProvider.php | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Credentials/EcsCredentialProvider.php b/src/Credentials/EcsCredentialProvider.php index 0f377f2d98..a9b9974bb3 100644 --- a/src/Credentials/EcsCredentialProvider.php +++ b/src/Credentials/EcsCredentialProvider.php @@ -13,6 +13,7 @@ class EcsCredentialProvider { const SERVER_URI = 'http://169.254.170.2'; + const ENV_SERVER_URI = 'AWS_CONTAINER_CREDENTIALS_SERVER_URI'; const ENV_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; const ENV_TIMEOUT = 'AWS_METADATA_SERVICE_TIMEOUT'; @@ -89,8 +90,14 @@ private function getEcsUri() if ($credsUri === false) { $credsUri = isset($_SERVER[self::ENV_URI]) ? $_SERVER[self::ENV_URI] : ''; } - - return self::SERVER_URI . $credsUri; + + $serverUri = getenv(self::ENV_SERVER_URI); + + if ($serverUri === false) { + $serverUri = isset($_SERVER[self::ENV_SERVER_URI]) ? $_SERVER[self::ENV_SERVER_URI] : self::SERVER_URI; + } + + return $serverUri . $credsUri; } private function decodeResult($response) From 20e2e53b80503b4f3a74009c67d58ec93bf4de3a Mon Sep 17 00:00:00 2001 From: Ben Harris Date: Fri, 3 Dec 2021 12:00:28 +0000 Subject: [PATCH 2/2] Updated to follow the AWS_CONTAINER_CREDENTIALS_FULL_URI implementation used in aws/aws-sdk-cpp and boto/botocore --- src/Credentials/EcsCredentialProvider.php | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Credentials/EcsCredentialProvider.php b/src/Credentials/EcsCredentialProvider.php index a9b9974bb3..61664dde5a 100644 --- a/src/Credentials/EcsCredentialProvider.php +++ b/src/Credentials/EcsCredentialProvider.php @@ -13,8 +13,8 @@ class EcsCredentialProvider { const SERVER_URI = 'http://169.254.170.2'; - const ENV_SERVER_URI = 'AWS_CONTAINER_CREDENTIALS_SERVER_URI'; const ENV_URI = "AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"; + const ENV_URI_FULL = "AWS_CONTAINER_CREDENTIALS_FULL_URI"; const ENV_TIMEOUT = 'AWS_METADATA_SERVICE_TIMEOUT'; /** @var callable */ @@ -85,19 +85,19 @@ public function __invoke() */ private function getEcsUri() { - $credsUri = getenv(self::ENV_URI); + $fullCredsUri = getenv(self::ENV_URI_FULL); - if ($credsUri === false) { - $credsUri = isset($_SERVER[self::ENV_URI]) ? $_SERVER[self::ENV_URI] : ''; + if($fullCredsUri !== false){ + return $fullCredsUri; } - $serverUri = getenv(self::ENV_SERVER_URI); + $credsUri = getenv(self::ENV_URI); - if ($serverUri === false) { - $serverUri = isset($_SERVER[self::ENV_SERVER_URI]) ? $_SERVER[self::ENV_SERVER_URI] : self::SERVER_URI; + if ($credsUri === false) { + $credsUri = isset($_SERVER[self::ENV_URI]) ? $_SERVER[self::ENV_URI] : ''; } - return $serverUri . $credsUri; + return self::SERVER_URI . $credsUri; } private function decodeResult($response)