16
16
17
17
package org .springframework .boot .buildpack .platform .docker .configuration ;
18
18
19
- import java .io .IOException ;
20
19
import java .util .Map ;
21
- import java .util .Map .Entry ;
22
20
import java .util .concurrent .ConcurrentHashMap ;
23
21
import java .util .function .BiConsumer ;
24
22
import java .util .function .Function ;
@@ -55,7 +53,7 @@ class DockerRegistryConfigAuthentication implements DockerRegistryAuthentication
55
53
DockerRegistryConfigAuthentication (DockerRegistryAuthentication fallback ,
56
54
BiConsumer <String , Exception > credentialHelperExceptionHandler ) {
57
55
this (fallback , credentialHelperExceptionHandler , Environment .SYSTEM ,
58
- (helper ) -> new CredentialHelper ("docker-credential-" + helper . trim () ));
56
+ (helper ) -> new CredentialHelper ("docker-credential-" + helper ));
59
57
}
60
58
61
59
DockerRegistryConfigAuthentication (DockerRegistryAuthentication fallback ,
@@ -85,6 +83,9 @@ private String getServerUrl(ImageReference imageReference) {
85
83
}
86
84
87
85
private DockerRegistryAuthentication getAuthentication (String serverUrl ) {
86
+ if (!StringUtils .hasLength (serverUrl )) {
87
+ return this .fallback ;
88
+ }
88
89
Credential credentialsFromHelper = getCredentialsFromHelper (serverUrl );
89
90
Map .Entry <String , Auth > authConfigEntry = getAuthConfigEntry (serverUrl );
90
91
serverUrl = (authConfigEntry != null ) ? authConfigEntry .getKey () : serverUrl ;
@@ -106,15 +107,14 @@ private DockerRegistryAuthentication getAuthentication(Credential credentialsFro
106
107
}
107
108
String username = credentialsFromHelper .getUsername ();
108
109
String password = credentialsFromHelper .getSecret ();
109
- String serverAddress = (credentialsFromHelper .getServerUrl () != null
110
- && ! credentialsFromHelper . getServerUrl (). isEmpty ()) ? credentialsFromHelper .getServerUrl () : serverUrl ;
110
+ String serverAddress = (StringUtils . hasLength ( credentialsFromHelper .getServerUrl ()))
111
+ ? credentialsFromHelper .getServerUrl () : serverUrl ;
111
112
String email = (authConfig != null ) ? authConfig .getEmail () : null ;
112
113
return DockerRegistryAuthentication .user (username , password , serverAddress , email );
113
114
}
114
115
115
116
private Credential getCredentialsFromHelper (String serverUrl ) {
116
- return (StringUtils .hasText (serverUrl ))
117
- ? credentialFromHelperCache .computeIfAbsent (serverUrl , this ::computeCredentialsFromHelper ) : null ;
117
+ return credentialFromHelperCache .computeIfAbsent (serverUrl , this ::computeCredentialsFromHelper );
118
118
}
119
119
120
120
private Credential computeCredentialsFromHelper (String serverUrl ) {
@@ -123,7 +123,7 @@ private Credential computeCredentialsFromHelper(String serverUrl) {
123
123
try {
124
124
return credentialHelper .get (serverUrl );
125
125
}
126
- catch (IOException ex ) {
126
+ catch (Exception ex ) {
127
127
String message = "Error retrieving credentials for '%s' due to: %s" .formatted (serverUrl ,
128
128
ex .getMessage ());
129
129
this .credentialHelperExceptionHandler .accept (message , ex );
@@ -134,10 +134,10 @@ private Credential computeCredentialsFromHelper(String serverUrl) {
134
134
135
135
private CredentialHelper getCredentialHelper (String serverUrl ) {
136
136
String name = this .dockerConfig .getCredHelpers ().getOrDefault (serverUrl , this .dockerConfig .getCredsStore ());
137
- return (name != null ) ? this .credentialHelperFactory .apply (name . trim () ) : null ;
137
+ return (StringUtils . hasLength ( name )) ? this .credentialHelperFactory .apply (name ) : null ;
138
138
}
139
139
140
- private Entry <String , Auth > getAuthConfigEntry (String serverUrl ) {
140
+ private Map . Entry <String , Auth > getAuthConfigEntry (String serverUrl ) {
141
141
for (Map .Entry <String , Auth > candidate : this .dockerConfig .getAuths ().entrySet ()) {
142
142
if (candidate .getKey ().equals (serverUrl ) || candidate .getKey ().endsWith ("://" + serverUrl )) {
143
143
return candidate ;
0 commit comments