@@ -1355,7 +1355,6 @@ public void getRequestMetadata_selfSignedJWT_withScopes() throws IOException {
13551355 .setPrivateKey (privateKey )
13561356 .setPrivateKeyId (PRIVATE_KEY_ID )
13571357 .setScopes (SCOPES )
1358- .setServiceAccountUser (USER )
13591358 .setProjectId (PROJECT_ID )
13601359 .setHttpTransportFactory (new MockTokenServerTransportFactory ())
13611360 .setUseJwtAccessWithScope (true )
@@ -1366,16 +1365,51 @@ public void getRequestMetadata_selfSignedJWT_withScopes() throws IOException {
13661365 }
13671366
13681367 @ Test
1369- public void getRequestMetadata_selfSignedJWT_withAudience () throws IOException {
1368+ public void refreshAccessToken_withDomainDelegation_selfSignedJWT_disabled () throws IOException {
1369+ final String accessToken1 = "1/MkSJoj1xsli0AccessToken_NKPY2" ;
1370+ final String accessToken2 = "2/MkSJoj1xsli0AccessToken_NKPY2" ;
1371+ MockTokenServerTransportFactory transportFactory = new MockTokenServerTransportFactory ();
1372+ MockTokenServerTransport transport = transportFactory .transport ;
13701373 PrivateKey privateKey = ServiceAccountCredentials .privateKeyFromPkcs8 (PRIVATE_KEY_PKCS8 );
13711374 GoogleCredentials credentials =
13721375 ServiceAccountCredentials .newBuilder ()
13731376 .setClientId (CLIENT_ID )
13741377 .setClientEmail (CLIENT_EMAIL )
13751378 .setPrivateKey (privateKey )
13761379 .setPrivateKeyId (PRIVATE_KEY_ID )
1380+ .setScopes (SCOPES )
13771381 .setServiceAccountUser (USER )
13781382 .setProjectId (PROJECT_ID )
1383+ .setHttpTransportFactory (transportFactory )
1384+ .setUseJwtAccessWithScope (true )
1385+ .build ();
1386+
1387+ transport .addServiceAccount (CLIENT_EMAIL , accessToken1 );
1388+ Map <String , List <String >> metadata = credentials .getRequestMetadata (CALL_URI );
1389+ TestUtils .assertContainsBearerToken (metadata , accessToken1 );
1390+
1391+ try {
1392+ verifyJwtAccess (metadata , "dummy.scope" );
1393+ fail ("jwt access should fail with ServiceAccountUser" );
1394+ } catch (Exception ex ) {
1395+ // expected
1396+ }
1397+
1398+ transport .addServiceAccount (CLIENT_EMAIL , accessToken2 );
1399+ credentials .refresh ();
1400+ TestUtils .assertContainsBearerToken (credentials .getRequestMetadata (CALL_URI ), accessToken2 );
1401+ }
1402+
1403+ @ Test
1404+ public void getRequestMetadata_selfSignedJWT_withAudience () throws IOException {
1405+ PrivateKey privateKey = ServiceAccountCredentials .privateKeyFromPkcs8 (PRIVATE_KEY_PKCS8 );
1406+ GoogleCredentials credentials =
1407+ ServiceAccountCredentials .newBuilder ()
1408+ .setClientId (CLIENT_ID )
1409+ .setClientEmail (CLIENT_EMAIL )
1410+ .setPrivateKey (privateKey )
1411+ .setPrivateKeyId (PRIVATE_KEY_ID )
1412+ .setProjectId (PROJECT_ID )
13791413 .setHttpTransportFactory (new MockTokenServerTransportFactory ())
13801414 .build ();
13811415
@@ -1393,7 +1427,6 @@ public void getRequestMetadata_selfSignedJWT_withDefaultScopes() throws IOExcept
13931427 .setPrivateKey (privateKey )
13941428 .setPrivateKeyId (PRIVATE_KEY_ID )
13951429 .setScopes (null , SCOPES )
1396- .setServiceAccountUser (USER )
13971430 .setProjectId (PROJECT_ID )
13981431 .setHttpTransportFactory (new MockTokenServerTransportFactory ())
13991432 .setUseJwtAccessWithScope (true )
@@ -1412,7 +1445,6 @@ public void getRequestMetadataWithCallback_selfSignedJWT() throws IOException {
14121445 .setClientEmail (CLIENT_EMAIL )
14131446 .setPrivateKey (privateKey )
14141447 .setPrivateKeyId (PRIVATE_KEY_ID )
1415- .setServiceAccountUser (USER )
14161448 .setProjectId (PROJECT_ID )
14171449 .setQuotaProjectId ("my-quota-project-id" )
14181450 .setHttpTransportFactory (new MockTokenServerTransportFactory ())
0 commit comments