Files
SystemX.Web/Projects/VPKI/VPKI/VPKI.Web.Api/Controllers/VPKIv1_Controller.cs
2025-04-24 15:42:47 +09:00

144 lines
4.9 KiB
C#

using DB.VPKI_DataDB;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Primitives;
using Microsoft.OpenApi.Validations.Rules;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using VPKI.Library.Model;
using VPKI.Library.Packet;
using VPKI.Web.Api.Services;
namespace VPKI.Web.Api.Controllers
{
[Tags("VPKI API v1")]
[ApiController()]
[Route("api/v1")]
public class VPKIv1_Controller : VPKIBaseController
{
public VPKIv1_Controller(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor)
: base(serviceProvider, _httpContextAccessor)
{
}
/// <summary>
/// CSR 생성 요청 (ISO15118-2)
/// </summary>
[HttpPost]
[Route("tbscsr")]
public async Task<IResult> Tbscsr([FromBody] Request_Tbscsr _request)
{
Response_Tbscsr response = new Response_Tbscsr();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"), LogType.Info);
var service = _serviceProvider.GetService<ISO15118_02Service>();
if (service != null)
{
response = await service.RequestTbscsr(_request);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"), LogType.Info);
return Results.Ok(response);
}
/// <summary>
/// 인증서 발급 요청 (ISO15118-2)
/// </summary>
[HttpPost]
[Route("certificate")]
public async Task<IResult> Certificate([FromBody] Request_Certificate _request)
{
Response_Certificate response = new Response_Certificate();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
var service = _serviceProvider.GetService<ISO15118_02Service>();
if (service != null)
{
response = await service.RequestCertificate(_request);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 검증 결과 전송 (ISO15118-2)
/// </summary>
[HttpPost]
[Route("verifyresult")]
public async Task<IResult> Verifyresult([FromBody] Request_Verifyresult request)
{
Response_Verifyresult response = new Response_Verifyresult();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request"));
var service = _serviceProvider.GetService<ISO15118_02Service>();
if(service != null)
{
response = await service.RequestVerifyresult(request);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 재발급 (ISO15118-2)
/// </summary>
[HttpPost]
[Route("reissue")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> Reissue([FromBody] Request_Certificate request)
{
//Response_Certificate response = new Response_Certificate();
//Log4net.WriteLine(GetRequestLog(request).LogModelToString("Request"));
//var service = _serviceProvider.GetService<ISO15118_02Service>();
//if (service != null)
//{
// response = await service.RequestCertificateReissue(request);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
/// <summary>
/// 인증서 폐기 (ISO15118-2)
/// </summary>
[HttpPost]
[Route("revoke")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> Revoke([FromBody] Request_CertificateRevokeOEM request)
{
//Response_CertificateRevokeOEM response = new Response_CertificateRevokeOEM();
//Guid guid = Guid.NewGuid();
//Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
//var service = _serviceProvider.GetService<ISO15118_02Service>();
//if (service != null)
//{
// response = await service.RequestCertificateRevoke(request);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
}
}