From 38fa2774370f33accf579b121d4c1eca8ae8374e Mon Sep 17 00:00:00 2001 From: Luwei Ge Date: Thu, 13 Feb 2025 21:18:50 +0000 Subject: [PATCH 1/2] feat: enable ALTS hard bound token in DirectPath --- .../java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java index 0e540ea7926..a640f050438 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java @@ -193,6 +193,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.time.Duration; +import java.util.Arrays; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -368,6 +369,9 @@ public GapicSpannerRpc(final SpannerOptions options) { boolean isAttemptDirectPathXds = Boolean.parseBoolean(directPathXdsEnv); if (isAttemptDirectPathXds) { defaultChannelProviderBuilder.setAttemptDirectPath(true); + // This will let the credentials try to fetch a hard-bound access token if the runtime + // environment supports it. + defaultChannelProviderBuilder.setAllowHardBoundTokenTypes(Arrays.asList(InstantiatingGrpcChannelProvider.HardBoundTokenTypes.ALTS)); defaultChannelProviderBuilder.setAttemptDirectPathXds(); } if (options.isUseVirtualThreads()) { From 3ed433351e285631bfb947bbdb8d329e5d7e426f Mon Sep 17 00:00:00 2001 From: Luwei Ge Date: Tue, 18 Feb 2025 16:24:45 +0000 Subject: [PATCH 2/2] address comment --- .../com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java index a640f050438..77ce3a540b8 100644 --- a/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java +++ b/google-cloud-spanner/src/main/java/com/google/cloud/spanner/spi/v1/GapicSpannerRpc.java @@ -193,7 +193,7 @@ import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; import java.time.Duration; -import java.util.Arrays; +import java.util.Collections; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -371,7 +371,8 @@ public GapicSpannerRpc(final SpannerOptions options) { defaultChannelProviderBuilder.setAttemptDirectPath(true); // This will let the credentials try to fetch a hard-bound access token if the runtime // environment supports it. - defaultChannelProviderBuilder.setAllowHardBoundTokenTypes(Arrays.asList(InstantiatingGrpcChannelProvider.HardBoundTokenTypes.ALTS)); + defaultChannelProviderBuilder.setAllowHardBoundTokenTypes( + Collections.singletonList(InstantiatingGrpcChannelProvider.HardBoundTokenTypes.ALTS)); defaultChannelProviderBuilder.setAttemptDirectPathXds(); } if (options.isUseVirtualThreads()) {