From 14804b225ad87df77b76239baff543bbcfb80aed Mon Sep 17 00:00:00 2001 From: Kevin Wittek Date: Fri, 23 Dec 2022 15:23:00 +0100 Subject: [PATCH] fix: Don't return JSON auth config for partial match of registry name --- .../utility/RegistryAuthLocator.java | 2 +- .../utility/RegistryAuthLocatorTest.java | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/org/testcontainers/utility/RegistryAuthLocator.java b/core/src/main/java/org/testcontainers/utility/RegistryAuthLocator.java index 0001b926059..bd44750a545 100644 --- a/core/src/main/java/org/testcontainers/utility/RegistryAuthLocator.java +++ b/core/src/main/java/org/testcontainers/utility/RegistryAuthLocator.java @@ -229,7 +229,7 @@ private Map.Entry findAuthNode(final JsonNode config, final St final Iterator> fields = auths.fields(); while (fields.hasNext()) { final Map.Entry entry = fields.next(); - if (entry.getKey().contains("://" + reposName) || entry.getKey().equals(reposName)) { + if (entry.getKey().endsWith("://" + reposName) || entry.getKey().equals(reposName)) { return entry; } } diff --git a/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java b/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java index fea7f93ed5a..36d535cc0b0 100644 --- a/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java +++ b/core/src/test/java/org/testcontainers/utility/RegistryAuthLocatorTest.java @@ -63,6 +63,20 @@ public void lookupAuthConfigWithJsonKeyCredentials() throws URISyntaxException { assertThat(authConfig.getPassword()).as("Password is set").isNotNull(); } + @Test + public void lookupAuthConfigWithJsonKeyCredentialsPartialMatchShouldGiveNoResult() throws URISyntaxException { + // contains entry for registry.example.com + final RegistryAuthLocator authLocator = createTestAuthLocator("config-with-json-key.json"); + + final AuthConfig authConfig = authLocator.lookupAuthConfig( + DockerImageName.parse("registry.example.co/org/repo"), // partial match of registry name + new AuthConfig() + ); + + assertThat(authConfig.getUsername()).as("auth config username").isNull(); + assertThat(authConfig.getPassword()).as("auth config password").isNull(); + } + @Test public void lookupAuthConfigUsingStore() throws URISyntaxException { final RegistryAuthLocator authLocator = createTestAuthLocator("config-with-store.json");