Skip to content

Commit c96df22

Browse files
committed
use enums to hold possible Transport + BindingEnforcement types
1 parent 4d0440b commit c96df22

File tree

2 files changed

+46
-49
lines changed

2 files changed

+46
-49
lines changed

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

Lines changed: 26 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@
5050
import com.google.common.annotations.VisibleForTesting;
5151
import com.google.common.base.Joiner;
5252
import com.google.common.base.MoreObjects.ToStringHelper;
53-
import com.google.common.base.Strings;
5453
import com.google.common.collect.ImmutableList;
5554
import com.google.common.collect.ImmutableSet;
5655
import com.google.errorprone.annotations.CanIgnoreReturnValue;
@@ -110,6 +109,16 @@ public class ComputeEngineCredentials extends GoogleCredentials
110109
static final int MAX_COMPUTE_PING_TRIES = 3;
111110
static final int COMPUTE_PING_CONNECTION_TIMEOUT_MS = 500;
112111

112+
public enum Transport {
113+
ALTS,
114+
MTLS
115+
}
116+
117+
public enum BindingEnforcement {
118+
ON,
119+
IAMPOLICY
120+
}
121+
113122
private static final String METADATA_FLAVOR = "Metadata-Flavor";
114123
private static final String GOOGLE = "Google";
115124
private static final String WINDOWS = "windows";
@@ -123,8 +132,8 @@ public class ComputeEngineCredentials extends GoogleCredentials
123132

124133
private final Collection<String> scopes;
125134

126-
private final String transport;
127-
private final String bindingEnforcement;
135+
private final Transport transport;
136+
private final BindingEnforcement bindingEnforcement;
128137

129138
private transient HttpTransportFactory transportFactory;
130139
private transient String serviceAccountEmail;
@@ -209,11 +218,15 @@ String createTokenUrlWithScopes() {
209218
if (!scopes.isEmpty()) {
210219
tokenUrl.set("scopes", Joiner.on(',').join(scopes));
211220
}
212-
if (!Strings.isNullOrEmpty(transport)) {
213-
tokenUrl.set("transport", transport);
221+
if (transport == Transport.MTLS) {
222+
tokenUrl.set("transport", "mtls");
223+
} else if (transport == Transport.ALTS) {
224+
tokenUrl.set("transport", "alts");
214225
}
215-
if (!Strings.isNullOrEmpty(bindingEnforcement)) {
216-
tokenUrl.set("binding-enforcement", bindingEnforcement);
226+
if (bindingEnforcement == BindingEnforcement.ON) {
227+
tokenUrl.set("binding-enforcement", "on");
228+
} else if (bindingEnforcement == BindingEnforcement.IAMPOLICY) {
229+
tokenUrl.set("binding-enforcement", "iam-policy");
217230
}
218231
return tokenUrl.toString();
219232
}
@@ -658,8 +671,8 @@ public static class Builder extends GoogleCredentials.Builder {
658671
private Collection<String> scopes;
659672
private Collection<String> defaultScopes;
660673

661-
private String transport;
662-
private String bindingEnforcement;
674+
private Transport transport;
675+
private BindingEnforcement bindingEnforcement;
663676

664677
protected Builder() {
665678
setRefreshMargin(COMPUTE_REFRESH_MARGIN);
@@ -703,13 +716,13 @@ public Builder setQuotaProjectId(String quotaProjectId) {
703716
}
704717

705718
@CanIgnoreReturnValue
706-
public Builder setTransport(String transport) {
719+
public Builder setTransport(Transport transport) {
707720
this.transport = transport;
708721
return this;
709722
}
710723

711724
@CanIgnoreReturnValue
712-
public Builder setBindingEnforcement(String bindingEnforcement) {
725+
public Builder setBindingEnforcement(BindingEnforcement bindingEnforcement) {
713726
this.bindingEnforcement = bindingEnforcement;
714727
return this;
715728
}
@@ -726,11 +739,11 @@ public Collection<String> getDefaultScopes() {
726739
return defaultScopes;
727740
}
728741

729-
public String getTransport() {
742+
public Transport getTransport() {
730743
return transport;
731744
}
732745

733-
public String getBindingEnforcement() {
746+
public BindingEnforcement getBindingEnforcement() {
734747
return bindingEnforcement;
735748
}
736749

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

Lines changed: 20 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -190,58 +190,36 @@ public void buildTokenUrlWithScopes_defaultScopes() {
190190
assertEquals("bar", scopes.toArray()[1]);
191191
}
192192

193-
@Test
194-
public void buildTokenUrl_emptyTransport() {
195-
ComputeEngineCredentials credentials =
196-
ComputeEngineCredentials.newBuilder()
197-
.setTransport("")
198-
.setBindingEnforcement("abc")
199-
.build();
200-
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
201-
202-
assertEquals(TOKEN_URL + "?binding-enforcement=abc", softBoundTokenUrl);
203-
}
204-
205193
@Test
206194
public void buildTokenUrl_nullTransport() {
207195
ComputeEngineCredentials credentials =
208196
ComputeEngineCredentials.newBuilder()
209197
.setTransport(null)
210-
.setBindingEnforcement("abc")
211-
.build();
212-
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
213-
214-
assertEquals(TOKEN_URL + "?binding-enforcement=abc", softBoundTokenUrl);
215-
}
216-
217-
@Test
218-
public void buildTokenUrl_emptyBindingEnforcement() {
219-
ComputeEngineCredentials credentials =
220-
ComputeEngineCredentials.newBuilder()
221-
.setTransport("abc")
222-
.setBindingEnforcement("")
198+
.setBindingEnforcement(ComputeEngineCredentials.BindingEnforcement.ON)
223199
.build();
224200
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
225201

226-
assertEquals(TOKEN_URL + "?transport=abc", softBoundTokenUrl);
202+
assertEquals(TOKEN_URL + "?binding-enforcement=on", softBoundTokenUrl);
227203
}
228204

229205
@Test
230206
public void buildTokenUrl_nullBindingEnforcement() {
231207
ComputeEngineCredentials credentials =
232208
ComputeEngineCredentials.newBuilder()
233-
.setTransport("abc")
209+
.setTransport(ComputeEngineCredentials.Transport.MTLS)
234210
.setBindingEnforcement(null)
235211
.build();
236212
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
237213

238-
assertEquals(TOKEN_URL + "?transport=abc", softBoundTokenUrl);
214+
assertEquals(TOKEN_URL + "?transport=mtls", softBoundTokenUrl);
239215
}
240216

241217
@Test
242218
public void buildTokenUrlSoftMtlsBound_mtls_transport() {
243219
ComputeEngineCredentials credentials =
244-
ComputeEngineCredentials.newBuilder().setTransport("mtls").build();
220+
ComputeEngineCredentials.newBuilder()
221+
.setTransport(ComputeEngineCredentials.Transport.MTLS)
222+
.build();
245223
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
246224

247225
assertEquals(TOKEN_URL + "?transport=mtls", softBoundTokenUrl);
@@ -250,7 +228,9 @@ public void buildTokenUrlSoftMtlsBound_mtls_transport() {
250228
@Test
251229
public void buildTokenUrlSoftMtlsBound_iam_enforcement() {
252230
ComputeEngineCredentials credentials =
253-
ComputeEngineCredentials.newBuilder().setBindingEnforcement("iam-policy").build();
231+
ComputeEngineCredentials.newBuilder()
232+
.setBindingEnforcement(ComputeEngineCredentials.BindingEnforcement.IAMPOLICY)
233+
.build();
254234
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
255235

256236
assertEquals(TOKEN_URL + "?binding-enforcement=iam-policy", softBoundTokenUrl);
@@ -260,8 +240,8 @@ public void buildTokenUrlSoftMtlsBound_iam_enforcement() {
260240
public void buildTokenUrlSoftMtlsBound_mtls_transport_iam_enforcement() {
261241
ComputeEngineCredentials credentials =
262242
ComputeEngineCredentials.newBuilder()
263-
.setTransport("mtls")
264-
.setBindingEnforcement("iam-policy")
243+
.setTransport(ComputeEngineCredentials.Transport.MTLS)
244+
.setBindingEnforcement(ComputeEngineCredentials.BindingEnforcement.IAMPOLICY)
265245
.build();
266246
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
267247

@@ -271,7 +251,9 @@ public void buildTokenUrlSoftMtlsBound_mtls_transport_iam_enforcement() {
271251
@Test
272252
public void buildTokenUrlHardMtlsBound_always_enforced() {
273253
ComputeEngineCredentials credentials =
274-
ComputeEngineCredentials.newBuilder().setBindingEnforcement("on").build();
254+
ComputeEngineCredentials.newBuilder()
255+
.setBindingEnforcement(ComputeEngineCredentials.BindingEnforcement.ON)
256+
.build();
275257
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
276258

277259
assertEquals(TOKEN_URL + "?binding-enforcement=on", softBoundTokenUrl);
@@ -281,8 +263,8 @@ public void buildTokenUrlHardMtlsBound_always_enforced() {
281263
public void buildTokenUrlHardMtlsBound_mtls_transport_always_enforced() {
282264
ComputeEngineCredentials credentials =
283265
ComputeEngineCredentials.newBuilder()
284-
.setTransport("mtls")
285-
.setBindingEnforcement("on")
266+
.setTransport(ComputeEngineCredentials.Transport.MTLS)
267+
.setBindingEnforcement(ComputeEngineCredentials.BindingEnforcement.ON)
286268
.build();
287269
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
288270

@@ -292,7 +274,9 @@ public void buildTokenUrlHardMtlsBound_mtls_transport_always_enforced() {
292274
@Test
293275
public void buildTokenUrlHardDirectPathBound_alts_transport() {
294276
ComputeEngineCredentials credentials =
295-
ComputeEngineCredentials.newBuilder().setTransport("alts").build();
277+
ComputeEngineCredentials.newBuilder()
278+
.setTransport(ComputeEngineCredentials.Transport.ALTS)
279+
.build();
296280
String softBoundTokenUrl = credentials.createTokenUrlWithScopes();
297281

298282
assertEquals(TOKEN_URL + "?transport=alts", softBoundTokenUrl);

0 commit comments

Comments
 (0)