1616
1717package org .springframework .boot .buildpack .platform .docker .configuration ;
1818
19- import java .io .IOException ;
2019import java .util .Map ;
21- import java .util .Map .Entry ;
2220import java .util .concurrent .ConcurrentHashMap ;
2321import java .util .function .BiConsumer ;
2422import java .util .function .Function ;
@@ -55,7 +53,7 @@ class DockerRegistryConfigAuthentication implements DockerRegistryAuthentication
5553 DockerRegistryConfigAuthentication (DockerRegistryAuthentication fallback ,
5654 BiConsumer <String , Exception > credentialHelperExceptionHandler ) {
5755 this (fallback , credentialHelperExceptionHandler , Environment .SYSTEM ,
58- (helper ) -> new CredentialHelper ("docker-credential-" + helper . trim () ));
56+ (helper ) -> new CredentialHelper ("docker-credential-" + helper ));
5957 }
6058
6159 DockerRegistryConfigAuthentication (DockerRegistryAuthentication fallback ,
@@ -85,6 +83,9 @@ private String getServerUrl(ImageReference imageReference) {
8583 }
8684
8785 private DockerRegistryAuthentication getAuthentication (String serverUrl ) {
86+ if (!StringUtils .hasLength (serverUrl )) {
87+ return this .fallback ;
88+ }
8889 Credential credentialsFromHelper = getCredentialsFromHelper (serverUrl );
8990 Map .Entry <String , Auth > authConfigEntry = getAuthConfigEntry (serverUrl );
9091 serverUrl = (authConfigEntry != null ) ? authConfigEntry .getKey () : serverUrl ;
@@ -106,15 +107,14 @@ private DockerRegistryAuthentication getAuthentication(Credential credentialsFro
106107 }
107108 String username = credentialsFromHelper .getUsername ();
108109 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 ;
111112 String email = (authConfig != null ) ? authConfig .getEmail () : null ;
112113 return DockerRegistryAuthentication .user (username , password , serverAddress , email );
113114 }
114115
115116 private Credential getCredentialsFromHelper (String serverUrl ) {
116- return (StringUtils .hasText (serverUrl ))
117- ? credentialFromHelperCache .computeIfAbsent (serverUrl , this ::computeCredentialsFromHelper ) : null ;
117+ return credentialFromHelperCache .computeIfAbsent (serverUrl , this ::computeCredentialsFromHelper );
118118 }
119119
120120 private Credential computeCredentialsFromHelper (String serverUrl ) {
@@ -123,7 +123,7 @@ private Credential computeCredentialsFromHelper(String serverUrl) {
123123 try {
124124 return credentialHelper .get (serverUrl );
125125 }
126- catch (IOException ex ) {
126+ catch (Exception ex ) {
127127 String message = "Error retrieving credentials for '%s' due to: %s" .formatted (serverUrl ,
128128 ex .getMessage ());
129129 this .credentialHelperExceptionHandler .accept (message , ex );
@@ -134,10 +134,10 @@ private Credential computeCredentialsFromHelper(String serverUrl) {
134134
135135 private CredentialHelper getCredentialHelper (String serverUrl ) {
136136 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 ;
138138 }
139139
140- private Entry <String , Auth > getAuthConfigEntry (String serverUrl ) {
140+ private Map . Entry <String , Auth > getAuthConfigEntry (String serverUrl ) {
141141 for (Map .Entry <String , Auth > candidate : this .dockerConfig .getAuths ().entrySet ()) {
142142 if (candidate .getKey ().equals (serverUrl ) || candidate .getKey ().endsWith ("://" + serverUrl )) {
143143 return candidate ;
0 commit comments