Skip to content

Commit b15da71

Browse files
committed
chore: Use a passive mds check in constructor
1 parent dfd4f45 commit b15da71

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -221,6 +221,15 @@ private ComputeEngineCredentials(ComputeEngineCredentials.Builder builder) {
221221
this.transport = builder.getGoogleAuthTransport();
222222
this.bindingEnforcement = builder.getBindingEnforcement();
223223
this.name = GoogleCredentialsInfo.COMPUTE_ENGINE_CREDENTIALS.getCredentialName();
224+
try {
225+
// Only do a passive check for MDS (do not make an MDS ping check during initialization)
226+
if (checkStaticGceDetection(new DefaultCredentialsProvider())) {
227+
this.serviceAccountEmail = getDefaultServiceAccount();
228+
this.principal = this.serviceAccountEmail;
229+
}
230+
} catch (IOException e) {
231+
// No-op as MDS is not available yet and should not fail initialization
232+
}
224233
}
225234

226235
@Override
@@ -762,9 +771,7 @@ private String getDefaultServiceAccount() throws IOException {
762771
responseData, LOGGER_PROVIDER, "Received default service account payload");
763772
Map<String, Object> defaultAccount =
764773
OAuth2Utils.validateMap(responseData, "default", PARSE_ERROR_ACCOUNT);
765-
String email = OAuth2Utils.validateString(defaultAccount, "email", PARSE_ERROR_ACCOUNT);
766-
principal = email;
767-
return email;
774+
return OAuth2Utils.validateString(defaultAccount, "email", PARSE_ERROR_ACCOUNT);
768775
}
769776

770777
public static class Builder extends GoogleCredentials.Builder {

oauth2_http/javatests/com/google/auth/oauth2/DefaultCredentialsProviderTest.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -821,7 +821,7 @@ public void getDefaultCredentials_wellKnownFile_userCredential_correctCredential
821821
}
822822

823823
@Test
824-
public void getDefaultCredentials_computeEngineCredentialscorrectCredentialInfo()
824+
public void getDefaultCredentials_computeEngineCredentials_correctCredentialInfo()
825825
throws IOException {
826826
MockMetadataServerTransportFactory transportFactory = new MockMetadataServerTransportFactory();
827827
TestDefaultCredentialsProvider testProvider = new TestDefaultCredentialsProvider();

0 commit comments

Comments
 (0)