import time from typing import Optional from .api_jwk import PyJWKSet, PyJWTSetWithTimestamp class JWKSetCache: def __init__(self, lifespan: int) -> None: self.jwk_set_with_timestamp: Optional[PyJWTSetWithTimestamp] = None self.lifespan = lifespan def put(self, jwk_set: PyJWKSet) -> None: if jwk_set is not None: self.jwk_set_with_timestamp = PyJWTSetWithTimestamp(jwk_set) else: # clear cache self.jwk_set_with_timestamp = None def get(self) -> Optional[PyJWKSet]: if self.jwk_set_with_timestamp is None or self.is_expired(): return None return self.jwk_set_with_timestamp.get_jwk_set() def is_expired(self) -> bool: return ( self.jwk_set_with_timestamp is not None and self.lifespan > -1 and time.monotonic() > self.jwk_set_with_timestamp.get_timestamp() + self.lifespan )
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
__pycache__ | Folder | 0755 |
|
|
__init__.py | File | 1.63 KB | 0644 |
|
algorithms.py | File | 29.1 KB | 0644 |
|
api_jwk.py | File | 4.1 KB | 0644 |
|
api_jws.py | File | 10.84 KB | 0644 |
|
api_jwt.py | File | 12.34 KB | 0644 |
|
exceptions.py | File | 1.02 KB | 0644 |
|
help.py | File | 1.71 KB | 0644 |
|
jwk_set_cache.py | File | 959 B | 0644 |
|
jwks_client.py | File | 4.12 KB | 0644 |
|
py.typed | File | 0 B | 0644 |
|
types.py | File | 99 B | 0644 |
|
utils.py | File | 3.81 KB | 0644 |
|
warnings.py | File | 59 B | 0644 |
|