From 848a6c3976940910d4102c0512db02061f7d84e7 Mon Sep 17 00:00:00 2001 From: pixelnix Date: Mon, 11 Dec 2023 11:58:13 -0800 Subject: [PATCH] Update DiscoveryDocumentCachingSigningKeyProvider.cs Call blocking method RetrieveMetadata() in provider constructor, instead of non-blocking caching method RefreshMetadata(). Ensures that construction of the provider causes a fetch of signing keys on the backchannel, eliminates race conditions that lead to 401 Unauthorized responses on cold start. Fixes https://github.com/okta/okta-aspnet/issues/249 and https://github.com/okta/okta-aspnet/issues/243 --- Okta.AspNet/DiscoveryDocumentCachingSigningKeyProvider.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Okta.AspNet/DiscoveryDocumentCachingSigningKeyProvider.cs b/Okta.AspNet/DiscoveryDocumentCachingSigningKeyProvider.cs index 3759efa..7852ddc 100644 --- a/Okta.AspNet/DiscoveryDocumentCachingSigningKeyProvider.cs +++ b/Okta.AspNet/DiscoveryDocumentCachingSigningKeyProvider.cs @@ -20,7 +20,7 @@ internal class DiscoveryDocumentCachingSigningKeyProvider public DiscoveryDocumentCachingSigningKeyProvider(IDiscoveryDocumentSigningKeyProvider provider) { _discoveryDocumentSigningKeyProvider = provider ?? throw new ArgumentNullException(nameof(provider), "The provider cannot be null."); - RefreshMetadata(); + RetrieveMetadata(); } ///