From d1230e33ec75ff776f4150d09d8529c109decc92 Mon Sep 17 00:00:00 2001 From: Felipe Mattioli Date: Sun, 7 Jul 2024 13:30:27 -0300 Subject: [PATCH] FEAT: Adding new environment variables --- .../TokenManager.Api/Program.cs | 4 +++ .../appsettings.Development.json | 12 ++++----- .../TokenManager.Api/appsettings.json | 27 ++++++++++++++----- .../ConfigurationBuilderExtensions.cs | 18 ++++++++++++- .../TokenManager.Infra.Data.csproj | 2 +- .../TokenManager.IntegrationTests.csproj | 14 +++++++--- .../TokenManager.UnitTests.csproj | 14 +++++++--- 7 files changed, 69 insertions(+), 22 deletions(-) diff --git a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/Program.cs b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/Program.cs index 682eca3..95681d6 100644 --- a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/Program.cs +++ b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/Program.cs @@ -1,3 +1,4 @@ +using Newtonsoft.Json; using TokenManager.Infra.CrossCutting.Config; using TokenManager.Infra.CrossCutting.Extensions; using TokenManager.Infra.CrossCutting.Handlers; @@ -12,6 +13,9 @@ .AddEnvironmentVariables(); var applicationSettings = builder.Configuration.GetApplicationSettings(builder.Environment); + +Console.WriteLine(JsonConvert.SerializeObject(applicationSettings)); + builder.Services.AddSingleton(applicationSettings); builder.Services.AddControllers(); diff --git a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.Development.json b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.Development.json index fa10863..26404ae 100644 --- a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.Development.json +++ b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.Development.json @@ -3,14 +3,14 @@ "AuthSettings": { "Realms": [ { - "Name": "smartconsig", - "Audience": "smartconsig-api", - "Issuer": "https://services-keycloak.ul0sru.easypanel.host/realms/smartconsig" + "Name": "", + "Audience": "", + "Issuer": "" } ], - "ClientId": "smartconsig-api", - "Resource": "smartconsig-api", - "AuthServerUrl": "https://services-keycloak.ul0sru.easypanel.host", + "ClientId": "", + "Resource": "", + "AuthServerUrl": "", "PolicyName": "TokenManager", "Roles": [ "TokenManager" diff --git a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.json b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.json index 10f68b8..7e09b84 100644 --- a/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.json +++ b/src/Feijuca.Keycloak.TokenManager/TokenManager.Api/appsettings.json @@ -1,9 +1,24 @@ { - "Logging": { - "LogLevel": { - "Default": "Information", - "Microsoft.AspNetCore": "Warning" + "Settings": { + "AuthSettings": { + "Realms": [ + { + "Name": "smartconsig", + "Audience": "smartconsig-api", + "Issuer": "https://services-keycloak.ul0sru.easypanel.host/realms/smartconsig" + } + ], + "ClientId": "smartconsig-api", + "Resource": "smartconsig-api", + "AuthServerUrl": "https://services-keycloak.ul0sru.easypanel.host", + "PolicyName": "TokenManager", + "Roles": [ + "TokenManager" + ], + "Scopes": [ + "tokenmanager-write", + "tokenmanager-read" + ] } - }, - "AllowedHosts": "*" + } } diff --git a/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.CrossCutting/Extensions/ConfigurationBuilderExtensions.cs b/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.CrossCutting/Extensions/ConfigurationBuilderExtensions.cs index 4f22d98..d18ffe4 100644 --- a/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.CrossCutting/Extensions/ConfigurationBuilderExtensions.cs +++ b/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.CrossCutting/Extensions/ConfigurationBuilderExtensions.cs @@ -1,5 +1,4 @@ using Feijuca.Keycloak.MultiTenancy.Services.Models; - using Microsoft.Extensions.Configuration; using Microsoft.Extensions.Hosting; using TokenManager.Infra.CrossCutting.Config; @@ -11,6 +10,23 @@ public static class ConfigurationBuilderExtensions public static Settings GetApplicationSettings(this IConfiguration configuration, IHostEnvironment env) { var settings = configuration.GetSection("Settings").Get()!; + + if (!env.IsDevelopment()) + { + settings.AuthSettings.Realms = + [ + new Realm + { + Name = GetEnvironmentVariableFromRender("Realm.Name"), + Audience = GetEnvironmentVariableFromRender("Realm.Audience"), + Issuer = GetEnvironmentVariableFromRender("Realm.Issuer") + } + ]; + + settings.AuthSettings.AuthServerUrl = GetEnvironmentVariableFromRender("AuthServerUrl"); + settings.AuthSettings.ClientId = GetEnvironmentVariableFromRender("ClientId"); + settings.AuthSettings.Resource = GetEnvironmentVariableFromRender("Resource"); + } return settings!; } diff --git a/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.Data/TokenManager.Infra.Data.csproj b/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.Data/TokenManager.Infra.Data.csproj index b4917f1..971beba 100644 --- a/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.Data/TokenManager.Infra.Data.csproj +++ b/src/Feijuca.Keycloak.TokenManager/TokenManager.Infra.Data/TokenManager.Infra.Data.csproj @@ -8,7 +8,7 @@ - + diff --git a/tests/TokenManager.IntegrationTests/TokenManager.IntegrationTests.csproj b/tests/TokenManager.IntegrationTests/TokenManager.IntegrationTests.csproj index 9c5b30a..a83e0ca 100644 --- a/tests/TokenManager.IntegrationTests/TokenManager.IntegrationTests.csproj +++ b/tests/TokenManager.IntegrationTests/TokenManager.IntegrationTests.csproj @@ -10,10 +10,16 @@ - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/tests/TokenManager.UnitTests/TokenManager.UnitTests.csproj b/tests/TokenManager.UnitTests/TokenManager.UnitTests.csproj index 9c5b30a..a83e0ca 100644 --- a/tests/TokenManager.UnitTests/TokenManager.UnitTests.csproj +++ b/tests/TokenManager.UnitTests/TokenManager.UnitTests.csproj @@ -10,10 +10,16 @@ - - - - + + all + runtime; build; native; contentfiles; analyzers; buildtransitive + + + + + all + runtime; build; native; contentfiles; analyzers; buildtransitive +