From d3458935295dccf7301300ba12fbb0afabaff363 Mon Sep 17 00:00:00 2001 From: Tim Date: Wed, 12 Aug 2015 23:18:37 +0200 Subject: [PATCH] Allow SSL cert verify override on Plex.tv requests. --- plexpy/http_handler.py | 13 ++++++++++--- plexpy/plextv.py | 4 +++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/plexpy/http_handler.py b/plexpy/http_handler.py index 98416c9b..60950ff1 100644 --- a/plexpy/http_handler.py +++ b/plexpy/http_handler.py @@ -18,16 +18,18 @@ from plexpy import logger, helpers from httplib import HTTPSConnection from httplib import HTTPConnection +import ssl class HTTPHandler(object): """ Retrieve data from Plex Server """ - def __init__(self, host, port, token): + def __init__(self, host, port, token, ssl_verify=True): self.host = host self.port = str(port) self.token = token + self.ssl_verify = ssl_verify """ Handle the HTTP requests. @@ -50,9 +52,14 @@ class HTTPHandler(object): if uri: if proto.upper() == 'HTTPS': - handler = HTTPSConnection(self.host, self.port, timeout=10) + if not self.ssl_verify: + context = ssl._create_unverified_context() + handler = HTTPSConnection(host=self.host, port=self.port, timeout=10, context=context) + logger.warn(u"PlexPy HTTP Handler :: Unverified HTTPS request made. This connection is not secure.") + else: + handler = HTTPSConnection(host=self.host, port=self.port, timeout=10) else: - handler = HTTPConnection(self.host, self.port, timeout=10) + handler = HTTPConnection(host=self.host, port=self.port, timeout=10) token_string = '' if not no_token: diff --git a/plexpy/plextv.py b/plexpy/plextv.py index 551feb81..d130b864 100644 --- a/plexpy/plextv.py +++ b/plexpy/plextv.py @@ -89,10 +89,12 @@ class PlexTV(object): self.protocol = 'HTTPS' self.username = username self.password = password + self.ssl_verify = plexpy.CONFIG.VERIFY_SSL_CERT self.request_handler = http_handler.HTTPHandler(host='plex.tv', port=443, - token=plexpy.CONFIG.PMS_TOKEN) + token=plexpy.CONFIG.PMS_TOKEN, + ssl_verify=self.ssl_verify) def get_plex_auth(self, output_format='raw'): uri = '/users/sign_in.xml'