@@ -294,10 +294,11 @@ static GoogleCredentials getCredentials(
294294 break ;
295295 case PRE_GENERATED_TOKEN :
296296 credentials =
297- getPreGeneratedTokensCredentials (authProperties , overrideProperties , callerClassName );
297+ getPreGeneratedTokensCredentials (
298+ authProperties , overrideProperties , httpTransportFactory , callerClassName );
298299 break ;
299300 case APPLICATION_DEFAULT_CREDENTIALS :
300- credentials = getApplicationDefaultCredentials (callerClassName );
301+ credentials = getApplicationDefaultCredentials (httpTransportFactory , callerClassName );
301302 break ;
302303 case EXTERNAL_ACCOUNT_AUTH :
303304 credentials =
@@ -553,12 +554,13 @@ private static GoogleCredentials getPreGeneratedAccessTokenCredentials(
553554 static GoogleCredentials getPreGeneratedTokensCredentials (
554555 Map <String , String > authProperties ,
555556 Map <String , String > overrideProperties ,
557+ HttpTransportFactory httpTransportFactory ,
556558 String callerClassName ) {
557559 LOG .finer ("++enter++\t " + callerClassName );
558560 if (authProperties .containsKey (BigQueryJdbcUrlUtility .OAUTH_REFRESH_TOKEN_PROPERTY_NAME )) {
559561 try {
560562 return getPreGeneratedRefreshTokenCredentials (
561- authProperties , overrideProperties , callerClassName );
563+ authProperties , overrideProperties , httpTransportFactory , callerClassName );
562564 } catch (URISyntaxException ex ) {
563565 throw new BigQueryJdbcRuntimeException (
564566 "URISyntaxException during getPreGeneratedTokensCredentials" , ex );
@@ -574,6 +576,16 @@ static UserCredentials getPreGeneratedRefreshTokenCredentials(
574576 Map <String , String > overrideProperties ,
575577 String callerClassName )
576578 throws URISyntaxException {
579+ return getPreGeneratedRefreshTokenCredentials (
580+ authProperties , overrideProperties , null , callerClassName );
581+ }
582+
583+ static UserCredentials getPreGeneratedRefreshTokenCredentials (
584+ Map <String , String > authProperties ,
585+ Map <String , String > overrideProperties ,
586+ HttpTransportFactory httpTransportFactory ,
587+ String callerClassName )
588+ throws URISyntaxException {
577589 LOG .finer ("++enter++\t " + callerClassName );
578590
579591 UserCredentials .Builder userCredentialsBuilder =
@@ -584,6 +596,10 @@ static UserCredentials getPreGeneratedRefreshTokenCredentials(
584596 .setClientSecret (
585597 authProperties .get (BigQueryJdbcUrlUtility .OAUTH_CLIENT_SECRET_PROPERTY_NAME ));
586598
599+ if (httpTransportFactory != null ) {
600+ userCredentialsBuilder .setHttpTransportFactory (httpTransportFactory );
601+ }
602+
587603 if (overrideProperties .containsKey (BigQueryJdbcUrlUtility .OAUTH2_TOKEN_URI_PROPERTY_NAME )) {
588604 userCredentialsBuilder .setTokenServerUri (
589605 new URI (overrideProperties .get (BigQueryJdbcUrlUtility .OAUTH2_TOKEN_URI_PROPERTY_NAME )));
@@ -598,10 +614,14 @@ static UserCredentials getPreGeneratedRefreshTokenCredentials(
598614 return userCredentialsBuilder .build ();
599615 }
600616
601- private static GoogleCredentials getApplicationDefaultCredentials (String callerClassName ) {
617+ private static GoogleCredentials getApplicationDefaultCredentials (
618+ HttpTransportFactory httpTransportFactory , String callerClassName ) {
602619 LOG .finer ("++enter++\t " + callerClassName );
603620 try {
604- GoogleCredentials credentials = GoogleCredentials .getApplicationDefault ();
621+ GoogleCredentials credentials =
622+ httpTransportFactory != null
623+ ? GoogleCredentials .getApplicationDefault (httpTransportFactory )
624+ : GoogleCredentials .getApplicationDefault ();
605625 String principal = "unknown" ;
606626 if (credentials instanceof ServiceAccountCredentials ) {
607627 principal = ((ServiceAccountCredentials ) credentials ).getClientEmail ();
0 commit comments