diff --git a/.circleci/config.yml b/.circleci/config.yml index 86e7b18..7fcf85b 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -36,12 +36,20 @@ jobs: scan-all-projects: true skip-unresolved: false run-on-non-main: true + reversing-labs: + docker: + - image: cimg/python:3.10 + resource_class: large + steps: + - checkout + - platform-helpers-general/step-load-dependencies + - platform-helpers/step-reversinglabs-scan workflows: "Malware Scanner": jobs: - build - - platform-helpers/job-reversinglabs-scan: + - reversing-labs: context: - static-analysis requires: diff --git a/okta_jwt_verifier/jwt_verifier.py b/okta_jwt_verifier/jwt_verifier.py index d5b36aa..72bed89 100644 --- a/okta_jwt_verifier/jwt_verifier.py +++ b/okta_jwt_verifier/jwt_verifier.py @@ -211,7 +211,12 @@ async def get_jwks(self): jwks_uri = self._construct_jwks_uri() headers = {'User-Agent': f'okta-jwt-verifier-python/{version}', 'Content-Type': 'application/json'} - jwks = await self.request_executor.get(jwks_uri, headers=headers) + try: + jwks = await self.request_executor.get(jwks_uri, headers=headers) + except Exception as e: # This is needed if the http client fails + self.request_executor.cache.release_new_key(('GET', jwks_uri)) + self._clear_requests_cache() + if not self.cache_jwks: self._clear_requests_cache() return jwks