From e673cc20cf89b1c71dabdfe7b77d80f05ab35a6f Mon Sep 17 00:00:00 2001 From: SHM Date: Mon, 2 Feb 2026 10:14:43 +0900 Subject: [PATCH] =?UTF-8?q?[=EC=84=B1=ED=98=84=EB=AA=A8]=20KMS=20=EC=84=9C?= =?UTF-8?q?=EB=B9=84=EC=8A=A4=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../WebApi.Project.ProxyKMSApi.Config.json | 58 +++++++++++- .../Controllers/KmsController.cs | 91 ++++++++----------- .../Models/ProxyKMSConfig.cs | 15 +++ .../WebApi/WebApi.Project.ProxyKMS/Program.cs | 2 + .../Services/KmsService.cs | 53 ++++++++++- 5 files changed, 165 insertions(+), 54 deletions(-) diff --git a/Projects/Config/WebApi.Project.ProxyKMSApi.Config.json b/Projects/Config/WebApi.Project.ProxyKMSApi.Config.json index f2b1755..de01923 100644 --- a/Projects/Config/WebApi.Project.ProxyKMSApi.Config.json +++ b/Projects/Config/WebApi.Project.ProxyKMSApi.Config.json @@ -7,7 +7,63 @@ "API": [ { "ApiName": "kms", - "Address": "https://1.237.74.86:5698/" + "Functions": [ + { + "Name": "EcuID_SupplierEcuID", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierEcuID" + }, + { + "Name": "MasterEcuKey_SupplierKeyProvisioning", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "MasterEcuKey_SupplierKeyProvisioningResult", + "Method": "Put", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "SupplierSymmKey_SupplierKeyProvisioning", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "SupplierSymmKey_SupplierKeyProvisioningResult", + "Method": "Put", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "SupplierSymmKey_SupplierKeySyncValue", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeySyncValue" + }, + { + "Name": "SupplierSymmKey_SupplierKeySyncValueResult", + "Method": "Put", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeySyncValue" + }, + { + "Name": "SecOCKey_SupplierKeyProvisioning", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "SecOCKey_SupplierKeyProvisioningResult", + "Method": "Put", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeyProvisioning" + }, + { + "Name": "SecOCKey_SupplierKeySyncValue", + "Method": "Post", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeySyncValue" + }, + { + "Name": "SecOCKey_SupplierKeySyncValueResult", + "Method": "Put", + "Url": "https://1.237.74.86:5698/app/automotive/supplierKeySyncValue" + } + ] } ] } \ No newline at end of file diff --git a/Projects/WebApi/WebApi.Project.ProxyKMS/Controllers/KmsController.cs b/Projects/WebApi/WebApi.Project.ProxyKMS/Controllers/KmsController.cs index 7df0ddc..fe11013 100644 --- a/Projects/WebApi/WebApi.Project.ProxyKMS/Controllers/KmsController.cs +++ b/Projects/WebApi/WebApi.Project.ProxyKMS/Controllers/KmsController.cs @@ -25,41 +25,38 @@ namespace WebApi.Project.ProxyKMS.Controllers Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } //2. MasterECUKEy [HttpPost("MasterEcuKey/SupplierKeyProvisioning")] - public async Task MasterEcuKey_SupplierKeyProvisioning([FromBody] EcuID.Request_SupplierEcuID request) + public async Task MasterEcuKey_SupplierKeyProvisioning([FromBody] MasterEcuKey.Request_SupplierKeyProvisioning request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPut("MasterEcuKey/SupplierKeyProvisioning")] - public async Task MasterEcuKey_SupplierKeyProvisioningResult([FromBody] MasterEcuKey.Request_SupplierKeyProvisioning request) + public async Task MasterEcuKey_SupplierKeyProvisioningResult([FromBody] MasterEcuKey.Request_SupplierKeyProvisioning_Result request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PutKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } //3. SupplierSymmKey @@ -69,12 +66,11 @@ namespace WebApi.Project.ProxyKMS.Controllers Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPut("SupplierSymmKey/SupplierKeyProvisioning")] @@ -83,40 +79,37 @@ namespace WebApi.Project.ProxyKMS.Controllers Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PutKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPost("SupplierSymmKey/SupplierKeySyncValue")] - public async Task SupplierSymmKey_SupplierKeySyncValue([FromBody] SupplierSymmKey.Request_SupplierKeyProvisioning request) + public async Task SupplierSymmKey_SupplierKeySyncValue([FromBody] SupplierSymmKey.Request_SupplierKeySyncValue request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPut("SupplierSymmKey/SupplierKeySyncValue")] - public async Task SupplierSymmKey_SupplierKeySyncValueResult([FromBody] SupplierSymmKey.Request_SupplierKeyProvisioning_Result request) + public async Task SupplierSymmKey_SupplierKeySyncValueResult([FromBody] SupplierSymmKey.Request_SupplierKeySyncValue_Result request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PutKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } //4,SecOCKey @@ -125,13 +118,12 @@ namespace WebApi.Project.ProxyKMS.Controllers { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); + + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPut("SecOCKey/SupplierKeyProvisioning")] @@ -140,40 +132,37 @@ namespace WebApi.Project.ProxyKMS.Controllers Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PutKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPost("SecOCKey/SupplierKeySyncValue")] - public async Task SecOCKey_SupplierKeySyncValue([FromBody] SecOCKey.Request_SupplierKeyProvisioning request) + public async Task SecOCKey_SupplierKeySyncValue([FromBody] SecOCKey.Request_SupplierKeySyncValue request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PostKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } [HttpPut("SecOCKey/SupplierKeySyncValue")] - public async Task SecOCKey_SupplierKeySyncValueResult([FromBody] SecOCKey.Request_SupplierKeyProvisioning_Result request) + public async Task SecOCKey_SupplierKeySyncValueResult([FromBody] SecOCKey.Request_SupplierKeySyncValue_Result request) { Guid guid = Guid.NewGuid(); LogXnet.WriteLine($"[Request][{GetRequestMethod()}:{GetMethodName()}][Client IP:{GetClientIP()}][RequestUrl:{GetRequestUrl()}]::({guid}){Environment.NewLine} {request.ToJson()}", LogXLabel.CONTROLLER); - // EcuID.Response_SupplierEcuID response = await _kmsMetaService.SetWbmsMeta(request, guid.ToString()); + var response = await _kmsMetaService.PutKms(request, guid.ToString()); - // LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); + LogXnet.WriteLine($"[Response]::({guid}){Environment.NewLine} {response.ToJson()}", LogXLabel.CONTROLLER); - // return Results.Ok(response); - return Results.Ok(); + return Results.Ok(response); } } } diff --git a/Projects/WebApi/WebApi.Project.ProxyKMS/Models/ProxyKMSConfig.cs b/Projects/WebApi/WebApi.Project.ProxyKMS/Models/ProxyKMSConfig.cs index a303495..6bbe8ac 100644 --- a/Projects/WebApi/WebApi.Project.ProxyKMS/Models/ProxyKMSConfig.cs +++ b/Projects/WebApi/WebApi.Project.ProxyKMS/Models/ProxyKMSConfig.cs @@ -4,5 +4,20 @@ namespace WebApi.Project.ProxyKMS.Models { public class ProxyKMSConfig : WebApiConfig { + public List API { get; set; } = new List(); + } + + public class API + { + public string ApiName { get; set; } = string.Empty; + + public List Functions { get; set; } = new List(); + } + + public class Function + { + public string Name { get; set; } + public string Method { get; set; } + public string Url { get; set; } } } diff --git a/Projects/WebApi/WebApi.Project.ProxyKMS/Program.cs b/Projects/WebApi/WebApi.Project.ProxyKMS/Program.cs index d438040..4cc391d 100644 --- a/Projects/WebApi/WebApi.Project.ProxyKMS/Program.cs +++ b/Projects/WebApi/WebApi.Project.ProxyKMS/Program.cs @@ -23,6 +23,7 @@ var builder = WebApplication.CreateBuilder(args); builder.Services.AddSingleton>(); //scoped +builder.Services.AddSingleton(); builder.Services.AddSingleton(); builder.Services.AddControllers(); @@ -30,6 +31,7 @@ builder.Services.AddControllers(); builder.Services.AddEndpointsApiExplorer(); builder.Services.AddSwaggerGen(); builder.Services.AddHttpContextAccessor(); +builder.Services.AddHttpContextAccessor(); //config preload, auth set ConfigService preloadConfig = new ConfigService(); diff --git a/Projects/WebApi/WebApi.Project.ProxyKMS/Services/KmsService.cs b/Projects/WebApi/WebApi.Project.ProxyKMS/Services/KmsService.cs index d51d2bc..179fc11 100644 --- a/Projects/WebApi/WebApi.Project.ProxyKMS/Services/KmsService.cs +++ b/Projects/WebApi/WebApi.Project.ProxyKMS/Services/KmsService.cs @@ -1,6 +1,55 @@ -namespace WebApi.Project.ProxyKMS.Services +using System; +using System.Runtime.CompilerServices; +using SystemX.Core.DB; +using SystemX.Core.Services; +using WebApi.Library.Enums; +using WebApi.Project.ProxyKMS.Models; + +namespace WebApi.Project.ProxyKMS.Services { - public class KmsService + public class KmsService : HttpService { + private readonly IServiceScopeFactory _scopeFactory; + private readonly ConfigService? _configService; + + private API KmsApi = new API(); + + public KmsService(IServiceProvider serviceProvider, IServiceScopeFactory scopeFactory, ConfigService configSerice) + { + _scopeFactory = scopeFactory; + _configService = configSerice; + + KmsApi = _configService.GetConfig().API.Find(x=>x.ApiName.ToLower() == "kms"); + } + + public async Task PostKms(REQUEST request, string guid = "", [CallerMemberName] string memberName = "") where REQUEST : class where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + + LogXnet.WriteLine($"KmsService.PostKms::{memberName}", LogXLabel.Debug); + + if (request != null) + { + var function = KmsApi.Functions.Find(x => x.Name == memberName); + response = await PostJsonAsync($"{function.Url}", request); + } + + return response; + } + + public async Task PutKms(REQUEST request, string guid = "", [CallerMemberName] string memberName = "") where REQUEST : class where RESPONSE : class + { + RESPONSE? response = default(RESPONSE); + + LogXnet.WriteLine($"KmsService.PutKms::{memberName}", LogXLabel.Debug); + + if (request != null) + { + var function = KmsApi.Functions.Find(x => x.Name == memberName); + response = await PutJsonAsync($"{function.Url}", request); + } + + return response; + } } }