code: def supply(self, issuer):
          
          def _retrieve_jwks():
              """Retrieve the JWKS from the given jwks_uri when cache misses."""
              jwks_uri = self._key_uri_supplier.supply(issuer)
  
              if not jwks_uri:
                  raise UnauthenticatedException(u"Cannot find the `jwks_uri` for issuer "
                                                 u"%s: either the issuer is unknown or "
                                                 u"the OpenID discovery failed" % issuer)
  
              try:
                  response = requests.get(jwks_uri)
                  json_response = response.json()
              except Exception as exception:
                  message = u"Cannot retrieve valid verification keys from the `jwks_uri`"
                  raise UnauthenticatedException(message, exception)
  
              if u"keys" in json_response:
                  # De-serialize the JSON as a JWKS object.
                  jwks_keys = jwk.KEYS()
                  jwks_keys.load_jwks(response.text)
                  return jwks_keys._keys
              else:
                  # The JSON is a dictionary mapping from key id to X.509 certificates.
                  # Thus we extract the public key from the X.509 certificates and
                  # construct a JWKS object.
                  return _extract_x509_certificates(json_response)
  
          return self._jwks_cache.get_or_create(issuer, _retrieve_jwks)
docs: Supplies the `Json Web Key Set` for the given issuer.
  
          Args:
            issuer: the issuer.
  
          Returns:
            The successfully retrieved Json Web Key Set. None is returned if the
              issuer is unknown or the retrieval process fails.
  
          Raises:
            UnauthenticatedException: When this method cannot supply JWKS for the
              given issuer (e.g. unknown issuer, HTTP request error).