From aa3c47402495e7c40edcd6fee713c696067a5361 Mon Sep 17 00:00:00 2001 From: Tirso Rodriguez Date: Wed, 15 Feb 2023 16:28:47 +0100 Subject: [PATCH] Add support for certifi to be used on urllib requests --- pyactiveresource/connection.py | 13 +++++++++++-- setup.py | 1 + 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/pyactiveresource/connection.py b/pyactiveresource/connection.py index 5515b48..606f340 100644 --- a/pyactiveresource/connection.py +++ b/pyactiveresource/connection.py @@ -3,10 +3,12 @@ """A connection object to interface with REST services.""" import base64 +import certifi import logging import socket import sys import six +import ssl from six.moves import urllib from pyactiveresource import formats @@ -313,9 +315,16 @@ def _urlopen(self, request): urllib.error.URLError on IO errors. """ if _urllib_has_timeout(): - return urllib.request.urlopen(request, timeout=self.timeout) + return urllib.request.urlopen( + request, + timeout=self.timeout, + context=ssl.create_default_context(cafile=certifi.where()) + ) else: - return urllib.request.urlopen(request) + return urllib.request.urlopen( + request, + context=ssl.create_default_context(cafile=certifi.where()) + ) def get(self, path, headers=None): """Perform an HTTP get request. diff --git a/setup.py b/setup.py index a8c6db2..4cace9d 100644 --- a/setup.py +++ b/setup.py @@ -19,6 +19,7 @@ license='MIT License', test_suite='test', install_requires=[ + 'certifi', 'six', ], tests_require=[