summaryrefslogtreecommitdiffstats
path: root/base/common/python/pki
diff options
context:
space:
mode:
authorChristian Heimes <cheimes@redhat.com>2016-01-14 13:22:33 +0100
committerChristian Heimes <cheimes@redhat.com>2016-01-20 12:03:09 +0100
commit387d09045fb37b71bc0f1980f16ca70bc071996c (patch)
treeb9ee1ff10bc91d5a2bee6948c33ceb813e8994a2 /base/common/python/pki
parent5bf3a94a9c3374e34bf66fe5b1725ff9b49a1f3c (diff)
downloadpki-387d09045fb37b71bc0f1980f16ca70bc071996c.tar.gz
pki-387d09045fb37b71bc0f1980f16ca70bc071996c.tar.xz
pki-387d09045fb37b71bc0f1980f16ca70bc071996c.zip
Don't use settings like HTTP proxy from env vars during installation
The PKIConnection class uses python-requests for HTTPS. The library picks up several settings from environment variables, e.g. HTTP proxy server, certificate bundle with trust anchors and authentication. A proxy can interfere with the Dogtag installer and cause some operations to fail. With session.trust_env = False python-requests no longer inspects the environment and Dogtag has full controll over its connection settings. For backward compatibility reasons trust_env is only disabled during installation and removal of Dogtag. https://requests.readthedocs.org/en/latest/api/?highlight=trust_env#requests.Session.trust_env https://fedorahosted.org/pki/ticket/1733 https://fedorahosted.org/freeipa/ticket/5555
Diffstat (limited to 'base/common/python/pki')
-rw-r--r--base/common/python/pki/client.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/base/common/python/pki/client.py b/base/common/python/pki/client.py
index 7617a0b63..230c23651 100644
--- a/base/common/python/pki/client.py
+++ b/base/common/python/pki/client.py
@@ -50,7 +50,8 @@ class PKIConnection:
"""
def __init__(self, protocol='http', hostname='localhost', port='8080',
- subsystem='ca', accept='application/json'):
+ subsystem='ca', accept='application/json',
+ trust_env=None):
"""
Set the parameters for a python-requests based connection to a
Dogtag subsystem.
@@ -65,6 +66,9 @@ class PKIConnection:
:param accept: value of accept header. Supported values are usually
'application/json' or 'application/xml'
:type accept: str
+ :param trust_env: use environment variables for http proxy and other
+ requests settings (default: yes)
+ :type trust_env: bool, None
:return: PKIConnection object.
"""
@@ -78,6 +82,7 @@ class PKIConnection:
self.subsystem
self.session = requests.Session()
+ self.session.trust_env = trust_env
if accept:
self.session.headers.update({'Accept': accept})