예제 #1
0
    def test_get_signing_key_caches_result(self):
        url = "https://dev-87evx9ru.auth0.com/.well-known/jwks.json"
        kid = "NEE1QURBOTM4MzI5RkFDNTYxOTU1MDg2ODgwQ0UzMTk1QjYyRkRFQw"

        jwks_client = PyJWKClient(url)

        with mocked_response(RESPONSE_DATA):
            jwks_client.get_signing_key(kid)

        # mocked_response does not allow urllib.request.urlopen to be called twice
        # so a second mock is needed
        with mocked_response(RESPONSE_DATA) as repeated_call:
            jwks_client.get_signing_key(kid)

        assert repeated_call.call_count == 0
예제 #2
0
    def test_get_signing_key(self, mocked_response):
        url = "https://dev-87evx9ru.auth0.com/.well-known/jwks.json"
        kid = "NEE1QURBOTM4MzI5RkFDNTYxOTU1MDg2ODgwQ0UzMTk1QjYyRkRFQw"

        with mocked_response(RESPONSE_DATA):
            jwks_client = PyJWKClient(url)
            signing_key = jwks_client.get_signing_key(kid)

        assert isinstance(signing_key, PyJWK)
        assert signing_key.key_type == "RSA"
        assert signing_key.key_id == kid
        assert signing_key.public_key_use == "sig"
예제 #3
0
 def _get_key(self, kid):
     jwks_client = PyJWKClient(self.public_key_jwk_uri, cache_keys=False)
     return jwks_client.get_signing_key(kid).key
예제 #4
0
    def _get_key(self, kid):
        if not PyJWKClient:
            raise NotImplementedError("PyJWK isn't supported")

        jwks_client = PyJWKClient(self.public_key_jwk_uri, cache_keys=False)
        return jwks_client.get_signing_key(kid).key