3
3
import java .net .URI ;
4
4
import java .nio .charset .StandardCharsets ;
5
5
import java .util .Base64 ;
6
- import java .util .function .Supplier ;
6
+ import java .util .Collections ;
7
+ import java .util .Map ;
7
8
import javax .json .Json ;
8
9
import javax .json .JsonObject ;
10
+ import javax .json .JsonObjectBuilder ;
9
11
10
12
/**
11
13
* An {@link Auth} holding a Registry Config.
17
19
public final class RegistryConfigAuth implements Auth {
18
20
19
21
/**
20
- * Base64-encoded JSON structure holding the regsitry config header value .
22
+ * All registry information .
21
23
*/
22
- private final Supplier < String > value ;
24
+ private final Map < URI , JsonObject > registries ;
23
25
24
26
/**
25
27
* Ctor.
@@ -51,11 +53,15 @@ public RegistryConfigAuth(final URI registry, final String identityToken) {
51
53
* @param data The Json Object representing Auth Config.
52
54
*/
53
55
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 ;
59
65
}
60
66
61
67
@ Override
@@ -65,6 +71,12 @@ public String headerName() {
65
71
66
72
@ Override
67
73
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
+ );
69
81
}
70
82
}
0 commit comments