@@ -239,7 +239,33 @@ public void testDefaultCredentialNoGceCheck() throws IOException {
239
239
assertEquals (0 , transport .getRequestCount ());
240
240
}
241
241
242
- public void testDefaultCredentialWithCustomMetadataServerAddress () throws IOException {
242
+ public void testDefaultCredentialWithInvalidCustomMetadataServerAddress () throws IOException {
243
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
244
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
245
+ testProvider .setEnv ("GCE_METADATA_HOST" , "this::domain.contains.invalid.chars" );
246
+
247
+ try {
248
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
249
+ fail ("No credential expected for default test provider." );
250
+ } catch (IOException expected ) {
251
+ }
252
+ assertTrue (transport .urlWasRequested ("http://169.254.169.254" ));
253
+ }
254
+
255
+ public void testDefaultCredentialWithInvalidCustomMetadataServerPort () throws IOException {
256
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
257
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
258
+ testProvider .setEnv ("GCE_METADATA_HOST" , "test.metadata.server.address:portShouldBeANumber" );
259
+
260
+ try {
261
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
262
+ fail ("No credential expected for default test provider." );
263
+ } catch (IOException expected ) {
264
+ }
265
+ assertTrue (transport .urlWasRequested ("http://169.254.169.254" ));
266
+ }
267
+
268
+ public void testDefaultCredentialWithCustomMetadataServerDomainAddress () throws IOException {
243
269
MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
244
270
TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
245
271
testProvider .setEnv ("GCE_METADATA_HOST" , "test.metadata.server.address" );
@@ -252,6 +278,88 @@ public void testDefaultCredentialWithCustomMetadataServerAddress() throws IOExce
252
278
assertTrue (transport .urlWasRequested ("http://test.metadata.server.address" ));
253
279
}
254
280
281
+ public void testDefaultCredentialWithCustomMetadataServerDomainAddressAndCustomPort ()
282
+ throws IOException {
283
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
284
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
285
+ testProvider .setEnv ("GCE_METADATA_HOST" , "test.metadata.server.address:8080" );
286
+
287
+ try {
288
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
289
+ fail ("No credential expected for default test provider." );
290
+ } catch (IOException expected ) {
291
+ }
292
+ assertTrue (transport .urlWasRequested ("http://test.metadata.server.address:8080" ));
293
+ }
294
+
295
+ public void testDefaultCredentialWithCustomMetadataServerIPv4Address () throws IOException {
296
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
297
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
298
+ testProvider .setEnv ("GCE_METADATA_HOST" , "169.254.0.1" );
299
+
300
+ try {
301
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
302
+ fail ("No credential expected for default test provider." );
303
+ } catch (IOException expected ) {
304
+ }
305
+ assertTrue (transport .urlWasRequested ("http://169.254.0.1" ));
306
+ }
307
+
308
+ public void testDefaultCredentialWithCustomMetadataServerIPv4AddressAndCustomPort ()
309
+ throws IOException {
310
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
311
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
312
+ testProvider .setEnv ("GCE_METADATA_HOST" , "169.254.0.1:8080" );
313
+
314
+ try {
315
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
316
+ fail ("No credential expected for default test provider." );
317
+ } catch (IOException expected ) {
318
+ }
319
+ assertTrue (transport .urlWasRequested ("http://169.254.0.1:8080" ));
320
+ }
321
+
322
+ public void testDefaultCredentialWithCustomMetadataServerIPv6Address () throws IOException {
323
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
324
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
325
+ testProvider .setEnv ("GCE_METADATA_HOST" , "fe80::1" );
326
+
327
+ try {
328
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
329
+ fail ("No credential expected for default test provider." );
330
+ } catch (IOException expected ) {
331
+ }
332
+ assertTrue (transport .urlWasRequested ("http://[fe80::1]" ));
333
+ }
334
+
335
+ public void testDefaultCredentialWithCustomMetadataServerIPv6AddressProvidedWithBrackets ()
336
+ throws IOException {
337
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
338
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
339
+ testProvider .setEnv ("GCE_METADATA_HOST" , "[fe80::1]" );
340
+
341
+ try {
342
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
343
+ fail ("No credential expected for default test provider." );
344
+ } catch (IOException expected ) {
345
+ }
346
+ assertTrue (transport .urlWasRequested ("http://[fe80::1]" ));
347
+ }
348
+
349
+ public void testDefaultCredentialWithCustomMetadataServerIPv6AddressAndCustomPort ()
350
+ throws IOException {
351
+ MockRequestUrlRecordingTransport transport = new MockRequestUrlRecordingTransport ();
352
+ TestDefaultCredentialProvider testProvider = new TestDefaultCredentialProvider ();
353
+ testProvider .setEnv ("GCE_METADATA_HOST" , "[fe80::1]:8080" );
354
+
355
+ try {
356
+ testProvider .getDefaultCredential (transport , JSON_FACTORY );
357
+ fail ("No credential expected for default test provider." );
358
+ } catch (IOException expected ) {
359
+ }
360
+ assertTrue (transport .urlWasRequested ("http://[fe80::1]:8080" ));
361
+ }
362
+
255
363
public void testDefaultCredentialNonExistentFileThrows () throws Exception {
256
364
File nonExistentFile = new java .io .File (getTempDirectory (), "DefaultCredentialBadFile.json" );
257
365
assertFalse (nonExistentFile .exists ());
0 commit comments