diff --git a/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java b/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java index ce5cf8c786..2db7361e3a 100644 --- a/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java +++ b/gax-java/gax/src/main/java/com/google/api/gax/rpc/EndpointContext.java @@ -327,8 +327,12 @@ boolean shouldUseS2A() { } // If a custom endpoint is being used, skip S2A. - if (!Strings.isNullOrEmpty(clientSettingsEndpoint()) - || !Strings.isNullOrEmpty(transportChannelProviderEndpoint())) { + if ((!Strings.isNullOrEmpty(clientSettingsEndpoint()) + && !buildEndpointTemplate(serviceName(), resolvedUniverseDomain()) + .contains(clientSettingsEndpoint())) + || (!Strings.isNullOrEmpty(transportChannelProviderEndpoint()) + && !buildEndpointTemplate(serviceName(), resolvedUniverseDomain()) + .contains(transportChannelProviderEndpoint()))) { return false; } diff --git a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java index dd1d383801..59342927ca 100644 --- a/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java +++ b/gax-java/gax/src/test/java/com/google/api/gax/rpc/EndpointContextTest.java @@ -380,6 +380,7 @@ void endpointContextBuild_shouldUseS2A_tlsEndpoint() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setUsingGDCH(false); @@ -478,6 +479,7 @@ void shouldUseS2A_envVarNotSet_returnsFalse() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setUsingGDCH(false); @@ -491,6 +493,7 @@ void shouldUseS2A_UsingGDCH_returnsFalse() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setUsingGDCH(true); @@ -504,6 +507,7 @@ void shouldUseS2A_customEndpointSetViaClientSettings_returnsFalse() throws IOExc defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("test.endpoint.com:443") .setTransportChannelProviderEndpoint("") .setUsingGDCH(false); @@ -517,6 +521,7 @@ void shouldUseS2A_customEndpointSetViaTransportChannelProvider_returnsFalse() th defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("test.endpoint.com:443") .setUsingGDCH(false); @@ -530,6 +535,7 @@ void shouldUseS2A_mtlsEndpointNull_returnsFalse() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setUsingGDCH(false) @@ -544,6 +550,7 @@ void shouldUseS2A_mtlsEndpointEmpty_returnsFalse() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setMtlsEndpoint("") @@ -558,6 +565,7 @@ void shouldUseS2A_mtlsEndpointNotGoogleDefaultUniverse_returnsFalse() throws IOE defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setMtlsEndpoint("test.mtls.abcd.com:443") @@ -572,6 +580,7 @@ void shouldUseS2A_success() throws IOException { defaultEndpointContextBuilder = defaultEndpointContextBuilder .setEnvProvider(envProvider) + .setResolvedUniverseDomain(Credentials.GOOGLE_DEFAULT_UNIVERSE) .setClientSettingsEndpoint("") .setTransportChannelProviderEndpoint("") .setUsingGDCH(false);