From eba905f2b3421ba0090cf107aa975763888f3405 Mon Sep 17 00:00:00 2001 From: Alex Pilon Date: Fri, 9 Jul 2021 14:30:43 -0400 Subject: [PATCH 1/3] Add support for ssl client authentication --- pydruid/client.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pydruid/client.py b/pydruid/client.py index ae51eab7..d10bd550 100755 --- a/pydruid/client.py +++ b/pydruid/client.py @@ -15,6 +15,7 @@ # import json import re +import ssl import urllib from base64 import b64encode @@ -43,6 +44,12 @@ def set_proxies(self, proxies): opener = urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener) + def set_cert_chain(self, certfile, keyfile=None, password=None): + context = ssl.create_default_context() + context.load_cert_chain(certfile, keyfile, password) + handler = urllib.request.HTTPSHandler(context=context) + urllib.request.install_opener(handler) + def _prepare_url_headers_and_body(self, query): querystr = json.dumps(query.query_dict).encode("utf-8") if self.url.endswith("/"): From 08b9639b83947e94c2f6ec6307383f64279063ec Mon Sep 17 00:00:00 2001 From: Alex Pilon Date: Mon, 12 Jul 2021 23:22:23 -0400 Subject: [PATCH 2/3] Need an opener to consume handler --- pydruid/client.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pydruid/client.py b/pydruid/client.py index d10bd550..5a70353b 100755 --- a/pydruid/client.py +++ b/pydruid/client.py @@ -48,7 +48,8 @@ def set_cert_chain(self, certfile, keyfile=None, password=None): context = ssl.create_default_context() context.load_cert_chain(certfile, keyfile, password) handler = urllib.request.HTTPSHandler(context=context) - urllib.request.install_opener(handler) + opener = urllib.request.build_opener(handler) + urllib.request.install_opener(opener) def _prepare_url_headers_and_body(self, query): querystr = json.dumps(query.query_dict).encode("utf-8") From 2b963ed6d3923ef20e031edb721bd37dfb923936 Mon Sep 17 00:00:00 2001 From: Alex Pilon Date: Mon, 16 Aug 2021 21:15:23 -0400 Subject: [PATCH 3/3] fix parameter order --- pydruid/db/api.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pydruid/db/api.py b/pydruid/db/api.py index 86b64e5e..9b415f9d 100644 --- a/pydruid/db/api.py +++ b/pydruid/db/api.py @@ -204,8 +204,8 @@ def __init__( context=None, header=False, ssl_verify_cert=True, - proxies=None, ssl_client_cert=None, + proxies=None, ): self.url = url self.context = context or {}