From c1f54ce35aaa885dabc1bf600f2e475c62d4629e Mon Sep 17 00:00:00 2001 From: Chengyuan Zhang Date: Tue, 8 Sep 2020 13:25:00 -0700 Subject: [PATCH] Throw exception is no server with supported channel creds is found. --- .../java/io/grpc/xds/XdsChannelFactory.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java b/xds/src/main/java/io/grpc/xds/XdsChannelFactory.java index 8c001a174b2d..cfd7664768d5 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