Skip to content

Commit 5b175e7

Browse files
committed
Merge branch '__rultor'
2 parents df0c1bc + 7f1427d commit 5b175e7

File tree

1 file changed

+21
-9
lines changed

1 file changed

+21
-9
lines changed

src/main/java/com/amihaiemil/docker/RegistryConfigAuth.java

Lines changed: 21 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,11 @@
33
import java.net.URI;
44
import java.nio.charset.StandardCharsets;
55
import java.util.Base64;
6-
import java.util.function.Supplier;
6+
import java.util.Collections;
7+
import java.util.Map;
78
import javax.json.Json;
89
import javax.json.JsonObject;
10+
import javax.json.JsonObjectBuilder;
911

1012
/**
1113
* An {@link Auth} holding a Registry Config.
@@ -17,9 +19,9 @@
1719
public final class RegistryConfigAuth implements Auth {
1820

1921
/**
20-
* Base64-encoded JSON structure holding the regsitry config header value.
22+
* All registry information.
2123
*/
22-
private final Supplier<String> value;
24+
private final Map<URI, JsonObject> registries;
2325

2426
/**
2527
* Ctor.
@@ -51,11 +53,15 @@ public RegistryConfigAuth(final URI registry, final String identityToken) {
5153
* @param data The Json Object representing Auth Config.
5254
*/
5355
private RegistryConfigAuth(final URI registry, final JsonObject data) {
54-
this.value = () -> Base64.getEncoder().encodeToString(
55-
Json.createObjectBuilder().add(registry.toString(), data)
56-
.build().toString()
57-
.getBytes(StandardCharsets.UTF_8)
58-
);
56+
this(Collections.singletonMap(registry, data));
57+
}
58+
59+
/**
60+
* Private Ctor.
61+
* @param registries The registries URI and.
62+
*/
63+
public RegistryConfigAuth(final Map<URI, JsonObject> registries) {
64+
this.registries = registries;
5965
}
6066

6167
@Override
@@ -65,6 +71,12 @@ public String headerName() {
6571

6672
@Override
6773
public String encoded() {
68-
return this.value.get();
74+
final JsonObjectBuilder bldr = Json.createObjectBuilder();
75+
this.registries.forEach(
76+
(registry, value) -> bldr.add(registry.toString(), value)
77+
);
78+
return Base64.getEncoder().encodeToString(
79+
bldr.build().toString().getBytes(StandardCharsets.UTF_8)
80+
);
6981
}
7082
}

0 commit comments

Comments
 (0)