summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXiao Zhu <xzhu@twitter.com>2021-10-14 11:18:53 -0700
committerIvan Kanakarakis <ivan.kanak@gmail.com>2022-04-19 14:04:26 +0300
commitf08d6d4e7f64c2b84c2acf7dee56e24387ce7dcc (patch)
treeac54535a221d7d91c90b75a27e26d8c274416fd7
parenta92443578acc20f3c095bdd5739d2de296746bc5 (diff)
downloadpysaml2-f08d6d4e7f64c2b84c2acf7dee56e24387ce7dcc.tar.gz
add timeout to config and httpbase
-rw-r--r--src/saml2/config.py2
-rw-r--r--src/saml2/entity.py2
-rw-r--r--src/saml2/httpbase.py3
-rw-r--r--src/saml2/mdstore.py4
4 files changed, 7 insertions, 4 deletions
diff --git a/src/saml2/config.py b/src/saml2/config.py
index 357dc6b8..f7cf76c3 100644
--- a/src/saml2/config.py
+++ b/src/saml2/config.py
@@ -76,6 +76,7 @@ COMMON_ARGS = [
"name_id_format",
"signing_algorithm",
"digest_algorithm",
+ "timeout",
]
SP_ARGS = [
@@ -228,6 +229,7 @@ class Config(object):
self.delete_tmpfiles = True
self.signing_algorithm = None
self.digest_algorithm = None
+ self.timeout = None
def setattr(self, context, attr, val):
if context == "":
diff --git a/src/saml2/entity.py b/src/saml2/entity.py
index 2d03c875..2ad2823c 100644
--- a/src/saml2/entity.py
+++ b/src/saml2/entity.py
@@ -175,7 +175,7 @@ class Entity(HTTPBase):
HTTPBase.__init__(self, self.config.verify_ssl_cert,
self.config.ca_certs, self.config.key_file,
- self.config.cert_file)
+ self.config.cert_file, self.config.timeout)
if self.config.vorg:
for vo in self.config.vorg.values():
diff --git a/src/saml2/httpbase.py b/src/saml2/httpbase.py
index f8393639..ccb42e93 100644
--- a/src/saml2/httpbase.py
+++ b/src/saml2/httpbase.py
@@ -100,7 +100,7 @@ def dict2set_list(dic):
class HTTPBase(object):
def __init__(self, verify=True, ca_bundle=None, key_file=None,
- cert_file=None):
+ cert_file=None, timeout=None):
self.request_args = {"allow_redirects": False}
#self.cookies = {}
self.cookiejar = http_cookiejar.CookieJar()
@@ -111,6 +111,7 @@ class HTTPBase(object):
self.request_args["verify"] = ca_bundle
if key_file:
self.request_args["cert"] = (cert_file, key_file)
+ self.request_args["timeout"] = timeout
self.sec = None
self.user = None
diff --git a/src/saml2/mdstore.py b/src/saml2/mdstore.py
index 120e4fc8..d882dc1e 100644
--- a/src/saml2/mdstore.py
+++ b/src/saml2/mdstore.py
@@ -1032,9 +1032,9 @@ class MetadataStore(MetaData):
MetaData.__init__(self, attrc, check_validity=check_validity)
if disable_ssl_certificate_validation:
- self.http = HTTPBase(verify=False, ca_bundle=ca_certs)
+ self.http = HTTPBase(verify=False, ca_bundle=ca_certs, timeout=config.timeout)
else:
- self.http = HTTPBase(verify=True, ca_bundle=ca_certs)
+ self.http = HTTPBase(verify=True, ca_bundle=ca_certs, timeout=config.timeout)
self.security = security_context(config)
self.ii = 0