File tree 1 file changed +12
-3
lines changed
gax-java/gax-grpc/src/main/java/com/google/api/gax/grpc
1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -1200,11 +1200,20 @@ boolean isDirectPathBoundTokenEnabled() {
1200
1200
CallCredentials createHardBoundTokensCallCredentials (
1201
1201
ComputeEngineCredentials .GoogleAuthTransport googleAuthTransport ,
1202
1202
ComputeEngineCredentials .BindingEnforcement bindingEnforcement ) {
1203
+ ComputeEngineCredentials .Builder credsBuilder =
1204
+ ((ComputeEngineCredentials ) credentials ).toBuilder ();
1203
1205
// We only set scopes and HTTP transport factory from the original credentials because
1204
- // only those are used in gRPC CallCredentials to fetch request metadata.
1206
+ // only those are used in gRPC CallCredentials to fetch request metadata. We create a new
1207
+ // credential
1208
+ // via {@code newBuilder} as opposed to {@code toBuilder} because we don't want a reference to
1209
+ // the
1210
+ // access token held by {@code credentials}; we want this new credential to fetch a new access
1211
+ // token
1212
+ // from MDS using the {@param googleAuthTransport} and {@param bindingEnforcement}.
1205
1213
return MoreCallCredentials .from (
1206
- ((ComputeEngineCredentials ) this .credentials )
1207
- .toBuilder ()
1214
+ ComputeEngineCredentials .newBuilder ()
1215
+ .setScopes (credsBuilder .getScopes ())
1216
+ .setHttpTransportFactory (credsBuilder .getHttpTransportFactory ())
1208
1217
.setGoogleAuthTransport (googleAuthTransport )
1209
1218
.setBindingEnforcement (bindingEnforcement )
1210
1219
.build ());
You can’t perform that action at this time.
0 commit comments