From 7b4b4151495e7c8a62c035317085631c14a7204c Mon Sep 17 00:00:00 2001 From: "Neidinger, Marcel" Date: Tue, 27 Oct 2020 12:49:23 +0100 Subject: [PATCH] added option to disable cert verification --- webexteamssdk/api/__init__.py | 10 ++++++++-- webexteamssdk/restsession.py | 12 +++++++++++- 2 files changed, 19 insertions(+), 3 deletions(-) diff --git a/webexteamssdk/api/__init__.py b/webexteamssdk/api/__init__.py index e742e0a..2ec93c6 100644 --- a/webexteamssdk/api/__init__.py +++ b/webexteamssdk/api/__init__.py @@ -72,7 +72,8 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, redirect_uri=None, proxies=None, be_geo_id=None, - caller=None): + caller=None, + disable_ssl_verify=False): """Create a new WebexTeamsAPI object. An access token must be used when interacting with the Webex Teams API. @@ -122,6 +123,9 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, caller(basestring): Optional identifier for API usage tracking. Defaults to checking for a WEBEX_PYTHON_SDK_CALLER environment variable. + disable_ssl_verify(bool): Optional boolean flag to disable ssl + verification. Defaults to False. If set to True, the requests + session won't verify ssl certs anymore. Returns: WebexTeamsAPI: A new WebexTeamsAPI object. @@ -143,6 +147,7 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, check_type(proxies, dict, optional=True) check_type(be_geo_id, basestring, optional=True) check_type(caller, basestring, optional=True) + check_type(disable_ssl_verify, bool, optional=True) access_token = access_token or WEBEX_TEAMS_ACCESS_TOKEN @@ -186,7 +191,8 @@ def __init__(self, access_token=None, base_url=DEFAULT_BASE_URL, wait_on_rate_limit=wait_on_rate_limit, proxies=proxies, be_geo_id=be_geo_id, - caller=caller + caller=caller, + disable_ssl_verify=disable_ssl_verify ) # API wrappers diff --git a/webexteamssdk/restsession.py b/webexteamssdk/restsession.py index 550271d..5a4be64 100644 --- a/webexteamssdk/restsession.py +++ b/webexteamssdk/restsession.py @@ -178,7 +178,8 @@ def __init__(self, access_token, base_url, wait_on_rate_limit=DEFAULT_WAIT_ON_RATE_LIMIT, proxies=None, be_geo_id=None, - caller=None): + caller=None, + disable_ssl_verify=False): """Initialize a new RestSession object. Args: @@ -198,6 +199,9 @@ def __init__(self, access_token, base_url, caller(basestring): Optional identifier for API usage tracking. Defaults to checking for a WEBEX_PYTHON_SDK_CALLER environment variable. + disable_ssl_verify(bool): Optional boolean flag to disable ssl + verification. Defaults to False. If set to true, the requests + session won't verify ssl certs anymore. Raises: TypeError: If the parameter types are incorrect. @@ -208,6 +212,7 @@ def __init__(self, access_token, base_url, check_type(single_request_timeout, int, optional=True) check_type(wait_on_rate_limit, bool) check_type(proxies, dict, optional=True) + check_type(disable_ssl_verify, bool, optional=True) super(RestSession, self).__init__() @@ -220,6 +225,11 @@ def __init__(self, access_token, base_url, # Initialize a new session self._req_session = requests.session() + # Disable ssl cert verification if chosen by user + if disable_ssl_verify: + self._req_session.verify = False + + if proxies is not None: self._req_session.proxies.update(proxies)