Skip to content

Commit c8d41dd

Browse files
committed
guard by flag
1 parent 56250b6 commit c8d41dd

4 files changed

Lines changed: 20 additions & 2 deletions

File tree

xds/src/main/java/io/grpc/xds/FilterRegistry.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.grpc.xds;
1818

1919
import com.google.common.annotations.VisibleForTesting;
20+
import io.grpc.internal.GrpcUtil;
2021
import java.util.HashMap;
2122
import java.util.Map;
2223
import javax.annotation.Nullable;
@@ -32,13 +33,18 @@ final class FilterRegistry {
3233

3334
private FilterRegistry() {}
3435

36+
public static boolean isEnabledGcpAuthnFilter =
37+
GrpcUtil.getFlag("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", false);
38+
3539
static synchronized FilterRegistry getDefaultRegistry() {
3640
if (instance == null) {
3741
instance = newRegistry().register(
3842
new FaultFilter.Provider(),
3943
new RouterFilter.Provider(),
40-
new RbacFilter.Provider(),
41-
new GcpAuthenticationFilter.Provider());
44+
new RbacFilter.Provider());
45+
if (isEnabledGcpAuthnFilter) {
46+
instance.register(new GcpAuthenticationFilter.Provider());
47+
}
4248
}
4349
return instance;
4450
}

xds/src/main/java/io/grpc/xds/GcpAuthenticationFilter.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package io.grpc.xds;
1818

1919
import static com.google.common.base.Preconditions.checkNotNull;
20+
import static io.grpc.xds.FilterRegistry.isEnabledGcpAuthnFilter;
2021
import static io.grpc.xds.XdsNameResolver.CLUSTER_SELECTION_KEY;
2122
import static io.grpc.xds.XdsNameResolver.XDS_CONFIG_CALL_OPTION_KEY;
2223

@@ -312,6 +313,10 @@ public String getTypeUrl() {
312313
public AudienceWrapper parse(Any any) throws ResourceInvalidException {
313314
Audience audience;
314315
try {
316+
if (!isEnabledGcpAuthnFilter) {
317+
throw new InvalidProtocolBufferException("Environment variable for GCP Authentication "
318+
+ "Filter is Not Set");
319+
}
315320
audience = any.unpack(Audience.class);
316321
} catch (InvalidProtocolBufferException ex) {
317322
throw new ResourceInvalidException("Invalid Resource in address proto", ex);

xds/src/test/java/io/grpc/xds/GcpAuthenticationFilterTest.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@
7373
import java.util.Collections;
7474
import java.util.HashMap;
7575
import java.util.Map;
76+
import org.junit.Before;
7677
import org.junit.Test;
7778
import org.junit.runner.RunWith;
7879
import org.junit.runners.JUnit4;
@@ -89,6 +90,11 @@ public class GcpAuthenticationFilterTest {
8990
private static final RdsUpdate rdsUpdate = getRdsUpdate();
9091
private static final CdsUpdate cdsUpdate = getCdsUpdate();
9192

93+
@Before
94+
public void setUp() {
95+
System.setProperty("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", "true");
96+
}
97+
9298
@Test
9399
public void testNewFilterInstancesPerFilterName() {
94100
assertThat(new GcpAuthenticationFilter("FILTER_INSTANCE_NAME1", 10))

xds/src/test/java/io/grpc/xds/GrpcXdsClientImplDataTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2417,6 +2417,7 @@ public Object parse(Any value) {
24172417

24182418
@Test
24192419
public void processCluster_parsesAudienceMetadata() throws Exception {
2420+
System.setProperty("GRPC_EXPERIMENTAL_XDS_GCP_AUTHENTICATION_FILTER", "true");
24202421
MetadataRegistry.getInstance();
24212422

24222423
Audience audience = Audience.newBuilder()

0 commit comments

Comments
 (0)