Skip to content

Commit 878204d

Browse files
committed
Fixed grpc insecure channel connect
1 parent ec45b3c commit 878204d

File tree

1 file changed

+23
-18
lines changed

1 file changed

+23
-18
lines changed

src/cisco_gnmi/builder.py

Lines changed: 23 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -271,9 +271,11 @@ def construct(self):
271271
channel_ssl_creds = None
272272
channel_metadata_creds = None
273273
channel_creds = None
274-
channel_ssl_creds = grpc.ssl_channel_credentials(
275-
self.__root_certificates, self.__private_key, self.__certificate_chain
276-
)
274+
channel_ssl_creds = None
275+
if any((self.__root_certificates, self.__private_key, self.__certificate_chain)):
276+
channel_ssl_creds = grpc.ssl_channel_credentials(
277+
self.__root_certificates, self.__private_key, self.__certificate_chain
278+
)
277279
if self.__username and self.__password:
278280
channel_metadata_creds = grpc.metadata_call_credentials(
279281
CiscoAuthPlugin(self.__username, self.__password)
@@ -284,25 +286,28 @@ def construct(self):
284286
channel_ssl_creds, channel_metadata_creds
285287
)
286288
logging.debug("Using SSL/metadata authentication composite credentials.")
287-
else:
289+
elif channel_ssl_creds:
288290
channel_creds = channel_ssl_creds
289291
logging.debug("Using SSL credentials, no metadata authentication.")
290-
if self.__ssl_target_name_override is not False:
291-
if self.__ssl_target_name_override is None:
292-
if not self.__root_certificates:
293-
raise Exception("Deriving override requires root certificate!")
294-
self.__ssl_target_name_override = get_cn_from_cert(
295-
self.__root_certificates
292+
if channel_creds:
293+
if self.__ssl_target_name_override is not False:
294+
if self.__ssl_target_name_override is None:
295+
if not self.__root_certificates:
296+
raise Exception("Deriving override requires root certificate!")
297+
self.__ssl_target_name_override = get_cn_from_cert(
298+
self.__root_certificates
299+
)
300+
logging.warning(
301+
"Overriding SSL option from certificate could increase MITM susceptibility!"
302+
)
303+
self.set_channel_option(
304+
"grpc.ssl_target_name_override", self.__ssl_target_name_override
296305
)
297-
logging.warning(
298-
"Overriding SSL option from certificate could increase MITM susceptibility!"
299-
)
300-
self.set_channel_option(
301-
"grpc.ssl_target_name_override", self.__ssl_target_name_override
306+
channel = grpc.secure_channel(
307+
self.__target_netloc.netloc, channel_creds, self.__channel_options
302308
)
303-
channel = grpc.secure_channel(
304-
self.__target_netloc.netloc, channel_creds, self.__channel_options
305-
)
309+
else:
310+
channel = grpc.insecure_channel(self.__target_netloc.netloc)
306311
if self.__client_class is None:
307312
self.set_os()
308313
client = self.__client_class(channel)

0 commit comments

Comments
 (0)