diff --git a/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java b/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java index 8c001a174b2..cfd7664768d 100644 --- a/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java +++ b/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java @@ -52,17 +52,28 @@ XdsChannel createChannel(List servers) throws XdsInitializationExcep List channelCredsList = serverInfo.getChannelCredentials(); ManagedChannelBuilder channelBuilder = null; // Use the first supported channel credentials configuration. - // Currently, only "google_default" is supported. for (ChannelCreds creds : channelCredsList) { - if (creds.getType().equals("google_default")) { - logger.log(XdsLogLevel.INFO, "Using channel credentials: google_default"); - channelBuilder = GoogleDefaultChannelBuilder.forTarget(serverUri); + switch (creds.getType()) { + case "google_default": + logger.log(XdsLogLevel.INFO, "Using channel credentials: google_default"); + channelBuilder = GoogleDefaultChannelBuilder.forTarget(serverUri); + break; + case "insecure": + logger.log(XdsLogLevel.INFO, "Using channel credentials: insecure"); + channelBuilder = ManagedChannelBuilder.forTarget(serverUri).usePlaintext(); + break; + case "tls": + logger.log(XdsLogLevel.INFO, "Using channel credentials: tls"); + channelBuilder = ManagedChannelBuilder.forTarget(serverUri); + break; + default: + } + if (channelBuilder != null) { break; } } if (channelBuilder == null) { - logger.log(XdsLogLevel.INFO, "Using default channel credentials"); - channelBuilder = ManagedChannelBuilder.forTarget(serverUri); + throw new XdsInitializationException("No server with supported channel creds found"); } ManagedChannel channel = channelBuilder