Skip to content

Commit 991c44f

Browse files
authored
fix: stop using double slashes in ImdsCredentialsProvider URLs (#1380)
1 parent 0b836a5 commit 991c44f

File tree

3 files changed

+16
-1
lines changed

3 files changed

+16
-1
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"id": "5a460540-14ee-4d26-a860-8cd122323b34",
3+
"type": "bugfix",
4+
"description": "Stop using double slashes in `ImdsCredentialsProvider` URLs"
5+
}

aws-runtime/aws-config/common/src/aws/sdk/kotlin/runtime/auth/credentials/ImdsCredentialsProvider.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ public class ImdsCredentialsProvider(
8484
}
8585

8686
val payload = try {
87-
client.value.get("$CREDENTIALS_BASE_PATH/$profileName")
87+
client.value.get("$CREDENTIALS_BASE_PATH$profileName")
8888
} catch (ex: Exception) {
8989
return useCachedCredentials(ex) ?: throw CredentialsProviderException("failed to load credentials", ex)
9090
}

aws-runtime/aws-config/common/test/aws/sdk/kotlin/runtime/auth/credentials/ImdsCredentialsProviderTest.kt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ class ImdsCredentialsProviderTest {
140140
"IMDSv2",
141141
)
142142
assertEquals(expected1, actual1)
143+
144+
connection.assertRequests()
143145
}
144146

145147
@Test
@@ -195,6 +197,8 @@ class ImdsCredentialsProviderTest {
195197
"IMDSv2",
196198
)
197199
assertEquals(expected, actual)
200+
201+
connection.assertRequests()
198202
}
199203

200204
@Test
@@ -225,6 +229,8 @@ class ImdsCredentialsProviderTest {
225229
ex.message.shouldContain("failed to load instance profile")
226230
assertIs<EC2MetadataError>(ex.cause)
227231
ex.cause!!.message.shouldContain("Request forbidden")
232+
233+
connection.assertRequests()
228234
}
229235

230236
@Test
@@ -272,6 +278,8 @@ class ImdsCredentialsProviderTest {
272278
assertFailsWith<CredentialsProviderException> {
273279
provider.resolve()
274280
}.message.shouldContain("failed to load instance profile")
281+
282+
connection.assertRequests()
275283
}
276284

277285
// SDK can send a request if expired credentials are available.
@@ -329,6 +337,8 @@ class ImdsCredentialsProviderTest {
329337
)
330338

331339
assertEquals(expected, actual)
340+
341+
connection.assertRequests()
332342
}
333343

334344
@Test

0 commit comments

Comments
 (0)