diff --git a/oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java b/oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java index c679a316c..d9018d3f1 100644 --- a/oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java +++ b/oauth2_http/java/com/google/auth/oauth2/ComputeEngineCredentials.java @@ -50,6 +50,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Joiner; import com.google.common.base.MoreObjects.ToStringHelper; +import com.google.common.base.Strings; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableSet; import com.google.errorprone.annotations.CanIgnoreReturnValue; @@ -208,10 +209,10 @@ String createTokenUrlWithScopes() { if (!scopes.isEmpty()) { tokenUrl.set("scopes", Joiner.on(',').join(scopes)); } - if (!transport.isEmpty()) { + if (!Strings.isNullOrEmpty(transport)) { tokenUrl.set("transport", transport); } - if (!bindingEnforcement.isEmpty()) { + if (!Strings.isNullOrEmpty(bindingEnforcement)) { tokenUrl.set("binding-enforcement", bindingEnforcement); } return tokenUrl.toString(); diff --git a/oauth2_http/javatests/com/google/auth/oauth2/ComputeEngineCredentialsTest.java b/oauth2_http/javatests/com/google/auth/oauth2/ComputeEngineCredentialsTest.java index 5d5326f45..f40213305 100644 --- a/oauth2_http/javatests/com/google/auth/oauth2/ComputeEngineCredentialsTest.java +++ b/oauth2_http/javatests/com/google/auth/oauth2/ComputeEngineCredentialsTest.java @@ -190,6 +190,54 @@ public void buildTokenUrlWithScopes_defaultScopes() { assertEquals("bar", scopes.toArray()[1]); } + @Test + public void buildTokenUrl_emptyTransport() { + ComputeEngineCredentials credentials = + ComputeEngineCredentials.newBuilder() + .setTransport("") + .setBindingEnforcement("abc") + .build(); + String softBoundTokenUrl = credentials.createTokenUrlWithScopes(); + + assertEquals(TOKEN_URL + "?binding-enforcement=abc", softBoundTokenUrl); + } + + @Test + public void buildTokenUrl_nullTransport() { + ComputeEngineCredentials credentials = + ComputeEngineCredentials.newBuilder() + .setTransport(null) + .setBindingEnforcement("abc") + .build(); + String softBoundTokenUrl = credentials.createTokenUrlWithScopes(); + + assertEquals(TOKEN_URL + "?binding-enforcement=abc", softBoundTokenUrl); + } + + @Test + public void buildTokenUrl_emptyBindingEnforcement() { + ComputeEngineCredentials credentials = + ComputeEngineCredentials.newBuilder() + .setTransport("abc") + .setBindingEnforcement("") + .build(); + String softBoundTokenUrl = credentials.createTokenUrlWithScopes(); + + assertEquals(TOKEN_URL + "?transport=abc", softBoundTokenUrl); + } + + @Test + public void buildTokenUrl_nullBindingEnforcement() { + ComputeEngineCredentials credentials = + ComputeEngineCredentials.newBuilder() + .setTransport("abc") + .setBindingEnforcement(null) + .build(); + String softBoundTokenUrl = credentials.createTokenUrlWithScopes(); + + assertEquals(TOKEN_URL + "?transport=abc", softBoundTokenUrl); + } + @Test public void buildTokenUrlSoftMtlsBound_mtls_transport() { ComputeEngineCredentials credentials =