Skip to content

Commit e3a6c43

Browse files
committed
feat: default httpc timeout
- fixes #93
1 parent 58fc18c commit e3a6c43

File tree

4 files changed

+11
-1
lines changed

4 files changed

+11
-1
lines changed

src/cryptojwt/key_bundle.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@
3535
KEYLOADERR = "Failed to load %s key from '%s' (%s)"
3636
REMOTE_FAILED = "Remote key update from '{}' failed, HTTP status {}"
3737
MALFORMED = "Remote key update from {} failed, malformed JWKS."
38+
DEFAULT_HTTPC_TIMEOUT = 10
3839

3940
LOGGER = logging.getLogger(__name__)
4041

@@ -254,6 +255,8 @@ def __init__(
254255
self.httpc = requests.request
255256

256257
self.httpc_params = httpc_params or {}
258+
if "timeout" not in self.httpc_params:
259+
self.httpc_params["timeout"] = DEFAULT_HTTPC_TIMEOUT
257260

258261
if keys:
259262
self.source = None

src/cryptojwt/key_issuer.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
from .jwe.utils import alg2keytype as jwe_alg2keytype
1010
from .jws.utils import alg2keytype as jws_alg2keytype
11+
from .key_bundle import DEFAULT_HTTPC_TIMEOUT
1112
from .key_bundle import KeyBundle
1213
from .key_bundle import build_key_bundle
1314
from .key_bundle import key_diff
@@ -58,6 +59,8 @@ def __init__(
5859
self.ca_certs = ca_certs
5960
self.httpc = httpc or request
6061
self.httpc_params = httpc_params or {}
62+
if "timeout" not in self.httpc_params:
63+
self.httpc_params["timeout"] = DEFAULT_HTTPC_TIMEOUT
6164
self.keybundle_cls = keybundle_cls
6265
self.name = name
6366
self.remove_after = remove_after

src/cryptojwt/key_jar.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from .exception import IssuerNotFound
99
from .jwe.jwe import alg2keytype as jwe_alg2keytype
1010
from .jws.utils import alg2keytype as jws_alg2keytype
11+
from .key_bundle import DEFAULT_HTTPC_TIMEOUT
1112
from .key_bundle import KeyBundle
1213
from .key_issuer import KeyIssuer
1314
from .key_issuer import build_keyissuer
@@ -51,6 +52,9 @@ def __init__(
5152
self.remove_after = remove_after
5253
self.httpc = httpc or request
5354
self.httpc_params = httpc_params or {}
55+
if "timeout" not in self.httpc_params:
56+
self.httpc_params["timeout"] = DEFAULT_HTTPC_TIMEOUT
57+
5458
# Now part of httpc_params
5559
# self.verify_ssl = verify_ssl
5660
if not self.httpc_params: # backward compatibility

tests/test_04_key_issuer.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -774,7 +774,7 @@ def test_localhost_url():
774774

775775
kb = issuer.find(url)
776776
assert len(kb) == 1
777-
assert kb[0].httpc_params == {"verify": False}
777+
assert kb[0].httpc_params == {"timeout": 10, "verify": False}
778778

779779

780780
def test_add_url():

0 commit comments

Comments
 (0)