Exposed key_file and cert_file in requests, to support https client certificates.

This commit is contained in:
chadnickbok@gmail.com
2012-03-14 15:57:30 -07:00
parent cc4381b91e
commit 82e69de44f
3 changed files with 23 additions and 3 deletions
+2
View File
@@ -33,6 +33,8 @@ def request(method, url, **kwargs):
:param config: (optional) A configuration dictionary.
:param verify: (optional) if ``True``, the SSL cert will be verified. A CA_BUNDLE path can also be provided.
:param prefetch: (optional) if ``True``, the response content will be immediately downloaded.
:param key_file: (optional) ssl client key file.
:param cert_file: (optional) ssl client cert file.
"""
s = kwargs.pop('session') if 'session' in kwargs else sessions.session()
+11 -1
View File
@@ -63,7 +63,9 @@ class Request(object):
config=None,
_poolmanager=None,
verify=None,
session=None):
session=None,
key_file=None,
cert_file=None):
#: Dictionary of configurations for this request.
self.config = dict(config or [])
@@ -143,6 +145,10 @@ class Request(object):
#: SSL Verification.
self.verify = verify
#: SSL Certificate
self.key_file = key_file
self.cert_file = cert_file
if headers:
headers = CaseInsensitiveDict(self.headers)
else:
@@ -507,6 +513,10 @@ class Request(object):
conn.cert_reqs = 'CERT_NONE'
conn.ca_certs = None
if self.key_file and self.cert_file:
conn.key_file = self.key_file
conn.cert_file = self.cert_file
if not self.sent or anyway:
if self.cookies:
+10 -2
View File
@@ -77,7 +77,9 @@ class Session(object):
params=None,
config=None,
prefetch=False,
verify=True):
verify=True,
key_file=None,
cert_file=None):
self.headers = headers or {}
self.cookies = cookies or {}
@@ -89,6 +91,8 @@ class Session(object):
self.config = config or {}
self.prefetch = prefetch
self.verify = verify
self.key_file = key_file
self.cert_file = cert_file
for (k, v) in list(defaults.items()):
self.config.setdefault(k, v)
@@ -131,7 +135,9 @@ class Session(object):
return_response=True,
config=None,
prefetch=False,
verify=None):
verify=None,
key_file=None,
cert_file=None):
"""Constructs and sends a :class:`Request <Request>`.
Returns :class:`Response <Response>` object.
@@ -188,6 +194,8 @@ class Session(object):
proxies=proxies,
config=config,
verify=verify,
key_file=key_file,
cert_file=cert_file,
_poolmanager=self.poolmanager
)