27 Commits

Author SHA1 Message Date
f60bb79920 feat(Ocelot.Cache.CacheManager): add and configure 2025-08-08 13:53:29 +02:00
d113d4fcdd refactor(oceleot): update auth endpoint to use 172.24.12.39 2025-07-28 11:25:52 +02:00
59963d7d4c Merge from master 2025-07-22 18:11:55 +02:00
5843e9efa8 feat(logging): enable NLog only in non-development environments 2025-07-22 18:08:52 +02:00
5c4dec8e7c chore: Name der Protokolldatei ändern 2025-07-22 18:02:44 +02:00
90a0751d09 chore: Upgrade auf 1.1.0 2025-07-22 15:57:39 +02:00
d2793f476a feat(gateway): Unterstützung für 3-stufig verschachtelte API-Routen hinzugefügt
- Routenzuordnung für /api/{route1}/{route2}/{route3} hinzugefügt
- Ermöglicht Downstream-Routing zur Unterstützung komplexerer API-Strukturen
2025-07-22 15:55:48 +02:00
a6140cab92 feat(ocelot.json): Aktualisierung der ocelot.json-Routen für verbesserte Weiterleitung und Frontend-Integration
- Aktualisierte bestehende Routen für Swagger und API-Endpunkte
- Ersetzte /swagger/{route} durch /swagger/auth/{route} für den Auth-Dienst
- Modifizierter Routenabgleich zur Unterstützung verschachtelter Routen (z. B. /api/{route1}/{route2})
- Hinzufügen von Routen für die Frontend-Angular-Anwendung, die auf Port 4200 läuft
2025-07-22 10:16:30 +02:00
Developer 02
6ade388cd7 Enhance logging configuration in Program.cs
Initialized logging by clearing providers, setting minimum
level to Trace, and configuring NLog as the logging provider.
2025-05-09 23:20:27 +02:00
Developer 02
23e73aae19 IISProfile aktualisieren 2025-04-08 15:30:21 +02:00
Developer 02
23d73e0671 gitignore aktualisiert 2025-04-08 15:29:26 +02:00
Developer 02
72b1c58b72 chore: Aktualisierung der Ziel-Frameworks in der Projektdatei
Geänderte `DigitalData.Gateway.csproj` zur Unterstützung mehrerer
Ziel-Frameworks: `net7.0`, `net8.0` und `net9.0`. Diese
verbessert die Kompatibilität und Flexibilität des Projekts.
2025-04-08 10:53:23 +02:00
Developer 02
4173c3d96a Aktualisierung der Ocelot-Paketversion in der Projektdatei
Die Projektdatei `DigitalData.Gateway.csproj` wurde geändert, um das `Ocelot`-Paket von Version `22.0.1` auf `23.4.3` zu aktualisieren. Außerdem wurde eine kleine Formatierungsänderung am `<Project>`-Tag vorgenommen, der nun ein nicht sichtbares Zeichen am Anfang der Zeile enthält.
2025-04-08 10:50:49 +02:00
Developer 02
97a20fdb8f feat(IISProfile): Konfiguration eines bestimmten IIS-Verzeichnisses für UserManager 2025-03-25 15:44:55 +01:00
Developer 02
4da1bc7617 feat(ocelet): Add Auth/user endpoint 2025-03-25 14:14:30 +01:00
Developer 02
78a58568fc feat(ocelot): add logout endpoint 2025-03-25 13:53:58 +01:00
Developer 02
9844cd16e8 fix(ocelot): Update DownstreamPathTemplate for authentication 2025-03-25 13:51:21 +01:00
Developer 02
896eee35bd refactor(ocelot.Development.json): Port 7120 auf 7103 aktualisiert 2025-03-24 15:26:58 +01:00
Developer 02
8a8f77c4d5 chore: port aktualisiert. 2025-03-24 14:55:35 +01:00
Developer 02
08e3cdddb0 chore: IIS-Profil zu git hinzufügen, um es für Zweige anpassen zu können 2025-03-11 17:14:07 +01:00
Developer 02
e1bd477753 refactor(ocelet.json): konfiguriert 2025-03-11 17:08:53 +01:00
Developer 02
174338af5d Refaktor: Aktualisierung der Endpunktzuordnung auf moderne Syntax zur verbesserten Klarheit 2025-03-11 16:55:34 +01:00
Developer 02
e3be4f5e6f chore(ocelet.Development): Anordnen von Ports und Authentifizierungsendpunkten. 2025-03-11 16:46:35 +01:00
Developer 02
cbd3accf72 feat: Logging für unerwartete Ausnahmen hinzugefügt, um eine bessere Fehlerverfolgung und Problemlösung zu gewährleisten. 2025-03-10 15:42:22 +01:00
Developer 02
d108978b63 feat: NLog hinzugefügt und über App-Einstellungen konfiguriert 2025-03-10 15:00:34 +01:00
Developer 02
6a536e950d feat: Ocelot-Konfigurationsdatei für die Entwicklung hinzugefügt. 2025-03-10 14:33:30 +01:00
Developer 02
0efb035d12 refactor(ocelot.json): Aktualisiert, um mit workFlow.API zu konfigurieren 2025-01-16 12:07:31 +01:00
6 changed files with 425 additions and 30 deletions

View File

@@ -1,16 +1,20 @@
<Project Sdk="Microsoft.NET.Sdk.Web"> <Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup> <PropertyGroup>
<TargetFramework>net7.0</TargetFramework> <TargetFramework>net7.0</TargetFramework>
<Nullable>enable</Nullable> <Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings> <ImplicitUsings>enable</ImplicitUsings>
<Version>1.0.0</Version> <Version>1.1.0</Version>
<AssemblyVersion>1.0.0</AssemblyVersion> <AssemblyVersion>1.1.0</AssemblyVersion>
<FileVersion>1.0.0</FileVersion> <FileVersion>1.1.0</FileVersion>
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<PackageReference Include="Ocelot" Version="22.0.1" /> <PackageReference Include="NLog" Version="5.4.0" />
<PackageReference Include="NLog.Extensions.Logging" Version="5.4.0" />
<PackageReference Include="NLog.Web.AspNetCore" Version="5.4.0" />
<PackageReference Include="Ocelot" Version="23.4.3" />
<PackageReference Include="Ocelot.Cache.CacheManager" Version="23.4.3" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@@ -1,26 +1,49 @@
using NLog;
using NLog.Web;
using Ocelot.DependencyInjection; using Ocelot.DependencyInjection;
using Ocelot.Middleware; using Ocelot.Middleware;
using Ocelot.Cache.CacheManager;
var builder = WebApplication.CreateBuilder(args); var logger = LogManager.Setup().LoadConfigurationFromAppSettings().GetCurrentClassLogger();
logger.Info("Logging initialized.");
// Make sure to add the Ocelot configuration file try
builder.Configuration.AddJsonFile("ocelot.json");
// Add Ocelot services
builder.Services.AddOcelot();
var app = builder.Build();
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
// Use Ocelot middleware in an appropriate way
app.UseEndpoints(endpoints =>
{ {
endpoints.MapControllers(); var builder = WebApplication.CreateBuilder(args);
});
builder.Logging.SetMinimumLevel(Microsoft.Extensions.Logging.LogLevel.Trace);
app.UseOcelot().Wait(); if (!builder.Environment.IsDevelopment())
{
builder.Logging.ClearProviders();
builder.Host.UseNLog();
}
app.Run(); // Make sure to add the Ocelot configuration file
var suffix = builder.Environment.IsDevelopment() ? ".Development" : "";
builder.Configuration.AddJsonFile($"ocelot{suffix}.json");
// Add Ocelot services
builder.Services
.AddOcelot()
.AddCacheManager(x => x.WithDictionaryHandle());
var app = builder.Build();
app.UseHttpsRedirection();
app.UseRouting();
app.UseAuthorization();
// Use Ocelot middleware in an appropriate way
app.MapControllers();
app.UseOcelot().Wait();
app.Run();
}
catch(Exception ex)
{
logger.Error(ex, "Stopped program because of exception.");
throw;
}

View File

@@ -23,7 +23,7 @@
"commandName": "Project", "commandName": "Project",
"dotnetRunMessages": true, "dotnetRunMessages": true,
"launchBrowser": true, "launchBrowser": true,
"launchUrl": "swagger", "launchUrl": "swagger/index.html",
"applicationUrl": "https://localhost:7052;http://localhost:5028", "applicationUrl": "https://localhost:7052;http://localhost:5028",
"environmentVariables": { "environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development" "ASPNETCORE_ENVIRONMENT": "Development"

View File

@@ -5,5 +5,48 @@
"Microsoft.AspNetCore": "Warning" "Microsoft.AspNetCore": "Warning"
} }
}, },
"AllowedHosts": "*" "AllowedHosts": "*",
"NLog": {
"throwConfigExceptions": true,
"variables": {
"logDirectory": "E:\\LogFiles\\Digital Data\\UserManager.Gateway",
"logFileNamePrefix": "${shortdate}-UserManager.Gateway"
},
"targets": {
"infoLogs": {
"type": "File",
"fileName": "${logDirectory}\\${logFileNamePrefix}-Info.log",
"maxArchiveDays": 30
},
"errorLogs": {
"type": "File",
"fileName": "${logDirectory}\\${logFileNamePrefix}-Error.log",
"maxArchiveDays": 30
},
"criticalLogs": {
"type": "File",
"fileName": "${logDirectory}\\${logFileNamePrefix}-Critical.log",
"maxArchiveDays": 30
}
},
// Trace, Debug, Info, Warn, Error and *Fatal*
"rules": [
{
"logger": "*",
"minLevel": "Info",
"maxLevel": "Warn",
"writeTo": "infoLogs"
},
{
"logger": "*",
"level": "Error",
"writeTo": "errorLogs"
},
{
"logger": "*",
"level": "Fatal",
"writeTo": "criticalLogs"
}
]
}
} }

172
ocelot.Development.json Normal file
View File

@@ -0,0 +1,172 @@
{
"Routes": [
{
"DownstreamPathTemplate": "/swagger/{route}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/swagger/{route}",
"UpstreamhttpsMethod": [
"Get"
]
},
{
"DownstreamPathTemplate": "/swagger/auth/{route}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "172.24.12.39",
"Port": 9090
}
],
"UpstreamPathTemplate": "/swagger/auth/{route}",
"UpstreamhttpsMethod": [
"Get"
]
},
{
"DownstreamPathTemplate": "/api/Auth/user-manager?cookie=true",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "172.24.12.39",
"Port": 9090
}
],
"UpstreamPathTemplate": "/api/Auth/login",
"UpstreamhttpsMethod": [ "Post" ]
},
{
"DownstreamPathTemplate": "/api/Auth/check",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/Auth/check",
"UpstreamhttpsMethod": [ "Get" ]
},
{
"DownstreamPathTemplate": "/api/Auth/logout",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/Auth/logout",
"UpstreamhttpsMethod": [ "Post" ]
},
{
"DownstreamPathTemplate": "/api/{route}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/api/{route1}/{route2}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route1}/{route2}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/api/{route1}/{route2}/{route3}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route1}/{route2}/{route3}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/{route}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/{route}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/{route1}/{route2}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/{route1}/{route2}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
}
],
"GlobalConfiguration": {
}
}

View File

@@ -1,7 +1,21 @@
{ {
"Routes": [ "Routes": [
{ {
"DownstreamPathTemplate": "/swagger/index.html", "DownstreamPathTemplate": "/swagger/{route}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/swagger/{route}",
"UpstreamhttpsMethod": [
"Get"
]
},
{
"DownstreamPathTemplate": "/swagger/auth/{route}",
"DownstreamScheme": "https", "DownstreamScheme": "https",
"DownstreamHostAndPorts": [ "DownstreamHostAndPorts": [
{ {
@@ -9,11 +23,150 @@
"Port": 7192 "Port": 7192
} }
], ],
"UpstreamPathTemplate": "/auth-swagger", "UpstreamPathTemplate": "/swagger/auth/{route}",
"UpstreamHttpMethod": [ "Get" ] "UpstreamhttpsMethod": [
"Get"
]
},
{
"DownstreamPathTemplate": "/api/Auth/user-manager?cookie=true",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7192
}
],
"UpstreamPathTemplate": "/api/Auth/login",
"UpstreamhttpsMethod": [ "Post" ]
},
{
"DownstreamPathTemplate": "/api/Auth/check",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/Auth/check",
"UpstreamhttpsMethod": [ "Get" ]
},
{
"DownstreamPathTemplate": "/api/Auth/logout",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/Auth/logout",
"UpstreamhttpsMethod": [ "Post" ]
},
{
"DownstreamPathTemplate": "/api/{route}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/api/{route1}/{route2}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route1}/{route2}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/api/{route1}/{route2}/{route3}",
"DownstreamScheme": "https",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 7103
}
],
"UpstreamPathTemplate": "/api/{route1}/{route2}/{route3}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/{route}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/{route}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
},
{
"DownstreamPathTemplate": "/{route1}/{route2}",
"DownstreamScheme": "http",
"DownstreamHostAndPorts": [
{
"Host": "localhost",
"Port": 4200
}
],
"UpstreamPathTemplate": "/{route1}/{route2}",
"UpstreamhttpsMethod": [
"Get",
"Post",
"Put",
"Delete"
]
} }
], ],
"GlobalConfiguration": { "GlobalConfiguration": {
"BaseUrl": "https://localhost:7052"
} }
} }