@@ -311,6 +311,8 @@ ImpersonatedCredentials buildImpersonatedCredentials() {
311311 .setScopes (new ArrayList <>(scopes ))
312312 .setLifetime (this .serviceAccountImpersonationOptions .lifetime )
313313 .setIamEndpointOverride (serviceAccountImpersonationUrl )
314+ .setConnectTimeout (connectTimeout )
315+ .setReadTimeout (readTimeout )
314316 .build ();
315317 }
316318
@@ -539,9 +541,9 @@ protected AccessToken exchangeExternalCredentialForAccessToken(
539541
540542 StsRequestHandler .Builder requestHandler =
541543 StsRequestHandler .newBuilder (
542- tokenUrl , stsTokenExchangeRequest , transportFactory .create ().createRequestFactory ());
543- requestHandler .setConnectTimeout (connectTimeout );
544- requestHandler .setReadTimeout (readTimeout );
544+ tokenUrl , stsTokenExchangeRequest , transportFactory .create ().createRequestFactory ())
545+ .setConnectTimeout (connectTimeout )
546+ .setReadTimeout (readTimeout );
545547
546548 // If this credential was initialized with a Workforce configuration then the
547549 // workforcePoolUserProject must be passed to the Security Token Service via the internal
@@ -779,8 +781,8 @@ public abstract static class Builder extends GoogleCredentials.Builder {
779781 @ Nullable protected String workforcePoolUserProject ;
780782 @ Nullable protected ServiceAccountImpersonationOptions serviceAccountImpersonationOptions ;
781783
782- private int connectTimeout = 20000 ; // Default to 20000ms = 20s
783- private int readTimeout = 20000 ; // Default to 20000ms = 20s
784+ protected int connectTimeout = 20000 ; // Default to 20000ms = 20s
785+ protected int readTimeout = 20000 ; // Default to 20000ms = 20s
784786
785787 /* The field is not being used and value not set. Superseded by the same field in the
786788 {@link GoogleCredentials.Builder}.
0 commit comments