@Override
  public JWKSet getJWKSet(JWKSetCacheRefreshEvaluator refreshEvaluator, long currentTime, T context)
      throws KeySourceException {
    var jwksUrl = discoverJwksUrl();
    try (var jwkSetSource = new URLBasedJWKSetSource<>(jwksUrl, new HttpRetriever(httpClient))) {
      return jwkSetSource.getJWKSet(null, 0, context);
    } catch (IOException e) {
      throw new RemoteKeySourceException(
          "failed to fetch jwks from discovery document '%s'".formatted(discoveryUrl), e);
    }
  }
@Test
  void getJWKSet_noJwksUri(WireMockRuntimeInfo wm) {

    var discoveryUrl = URI.create(wm.getHttpBaseUrl()).resolve(DISCOVERY_PATH);

    stubFor(get(DISCOVERY_PATH).willReturn(okJson("{\"jwks_uri\": null}")));

    var sut = new DiscoveryJwkSetSource<>(HttpClient.newHttpClient(), discoveryUrl);

    assertThrows(RemoteKeySourceException.class, () -> sut.getJWKSet(null, 0, null));
  }