From 27d83ec102dcc79138c69985f7c713dccd5170e6 Mon Sep 17 00:00:00 2001 From: Peter Nylander Date: Tue, 21 Oct 2025 21:32:02 +0200 Subject: [PATCH 1/2] Fixes after review --- .../Configuration/ConfigurationBuilderExtensions.cs | 9 +++++---- src/Infinity.Toolkit.Azure/EnvironmentHelper.cs | 2 +- .../Identity/TokenCredentialHelper.cs | 6 +++++- .../WebApplicationBuilderExtensions.cs | 6 ------ 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs b/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs index 866fc53..d2a830d 100644 --- a/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs +++ b/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs @@ -125,10 +125,11 @@ public static IHostApplicationBuilder ConfigureAzureAppConfiguration(this IHostA if (!Uri.TryCreate(envEndpoint, UriKind.Absolute, out endpointUri)) { throw new InvalidOperationException($""" - ConnectionString is missing. - It should be provided in 'ConnectionStrings:AzureAppConfig' - or '{configSectionName}:Endpoint' key - configuration section or 'AZURE_APP_CONFIG_ENDPOINT' environment variable. + Unable to find a valid Azure App Configuration endpoint. + Please provide a valid endpoint using one of the following sources: + - 'ConnectionStrings:AzureAppConfig' (connection string) + - '{configSectionName}:Endpoint' configuration section + - 'AZURE_APP_CONFIG_ENDPOINT' environment variable """); } } diff --git a/src/Infinity.Toolkit.Azure/EnvironmentHelper.cs b/src/Infinity.Toolkit.Azure/EnvironmentHelper.cs index c45f849..6ef8d12 100644 --- a/src/Infinity.Toolkit.Azure/EnvironmentHelper.cs +++ b/src/Infinity.Toolkit.Azure/EnvironmentHelper.cs @@ -4,7 +4,7 @@ internal static class EnvironmentHelper { public static bool IsRunningInContainer => Equals(Environment.GetEnvironmentVariable("DOTNET_RUNNING_IN_CONTAINER"), "true"); - public static bool IsRunningInAzureAppService => Equals(Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME"), "true"); + public static bool IsRunningInAzureAppService => !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("WEBSITE_SITE_NAME")); public static bool IsRunningInAzureContainerApps => IsRunningInContainer && !string.IsNullOrEmpty(Environment.GetEnvironmentVariable("CONTAINER_APP_NAME")); diff --git a/src/Infinity.Toolkit.Azure/Identity/TokenCredentialHelper.cs b/src/Infinity.Toolkit.Azure/Identity/TokenCredentialHelper.cs index 7666c2f..3f66d15 100644 --- a/src/Infinity.Toolkit.Azure/Identity/TokenCredentialHelper.cs +++ b/src/Infinity.Toolkit.Azure/Identity/TokenCredentialHelper.cs @@ -31,9 +31,13 @@ public static TokenCredential GetTokenCredential(string? clientId = null) // First check if the app is running in Azure if (EnvironmentHelper.IsRunningInAzure) { + var userAssignedClientId = clientId ?? Environment.GetEnvironmentVariable("AZURE_CLIENT_ID"); tokenCredentials = [ new EnvironmentCredential(), - new ManagedIdentityCredential(ManagedIdentityId.FromUserAssignedClientId(clientId ?? Environment.GetEnvironmentVariable("AZURE_CLIENT_ID") ?? string.Empty))]; + string.IsNullOrWhiteSpace(userAssignedClientId) + ? new ManagedIdentityCredential() + : new ManagedIdentityCredential(ManagedIdentityId.FromUserAssignedClientId(userAssignedClientId)) + ]; var tokenCredential = new ChainedTokenCredential(tokenCredentials); return tokenCredential; diff --git a/src/Infinity.Toolkit.FeatureModules/WebApplicationBuilderExtensions.cs b/src/Infinity.Toolkit.FeatureModules/WebApplicationBuilderExtensions.cs index b078c22..105e423 100644 --- a/src/Infinity.Toolkit.FeatureModules/WebApplicationBuilderExtensions.cs +++ b/src/Infinity.Toolkit.FeatureModules/WebApplicationBuilderExtensions.cs @@ -97,12 +97,6 @@ private static void RegisterModules(IEnumerable discoveredModules, IHo foreach (var module in modules) { - if (registeredFeatureModules.ContainsKey(module.GetType())) - { - logger?.LogWarning(new EventId(1001, "RegisteringModules"), "Module {module} is already registered. Skipping duplicate registration.", module.GetType().FullName); - continue; - } - registeredFeatureModules.Add(module.GetType(), module); if (module is IWebFeatureModule webModule) From 0a133ae6f8c7293f76a9d5938c4d08f46d90bd91 Mon Sep 17 00:00:00 2001 From: Peter Nylander Date: Tue, 21 Oct 2025 21:34:22 +0200 Subject: [PATCH 2/2] Update src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- .../Configuration/ConfigurationBuilderExtensions.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs b/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs index d2a830d..b058869 100644 --- a/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs +++ b/src/Infinity.Toolkit.Azure/Configuration/ConfigurationBuilderExtensions.cs @@ -128,7 +128,7 @@ public static IHostApplicationBuilder ConfigureAzureAppConfiguration(this IHostA Unable to find a valid Azure App Configuration endpoint. Please provide a valid endpoint using one of the following sources: - 'ConnectionStrings:AzureAppConfig' (connection string) - - '{configSectionName}:Endpoint' configuration section + - '${configSectionName}:Endpoint' configuration section - 'AZURE_APP_CONFIG_ENDPOINT' environment variable """); }