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

276 lines
9.8 KiB
C#

using Azure;
using Microsoft.AspNetCore.Mvc;
using VPKI.Library.Model;
using VPKI.Library.Packet;
using VPKI.Web.Api.Services;
namespace VPKI.Web.Api.Controllers
{
[ApiController()]
[Route("api/v2")]
public class VPKIv2_Controller : VPKIBaseController
{
public VPKIv2_Controller(IServiceProvider serviceProvider, IHttpContextAccessor _httpContextAccessor)
: base(serviceProvider, _httpContextAccessor)
{
}
#region prov
/// <summary>
/// CSR 생성 요청 (ISO15118-20) prov
/// </summary>
[Tags("VPKI API v2 prov")]
[HttpPost]
[Route("prov/tbscsr")]
public async Task<IResult> ProvTbscsr([FromBody] Request_Tbscsr _request)
{
Response_Tbscsr response = new Response_Tbscsr();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
var service = _serviceProvider.GetService<ISO15118_20Service>();
if(service != null)
{
response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.prov_cert);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 발급 요청 (ISO15118-20) prov
/// </summary>
[Tags("VPKI API v2 prov")]
[HttpPost]
[Route("prov/certificate")]
public async Task<IResult> ProvCertificate([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_20Service>();
if(service != null)
{
response = await service.RequestCertificate(_request, Library.Enums.VpkiType.prov_cert);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 검증 결과 전송 (ISO15118-20) prov
/// </summary>
[Tags("VPKI API v2 prov")]
[HttpPost]
[Route("prov/verifyresult")]
public async Task<IResult> ProvVerifyresult([FromBody] Request_Verifyresult request)
{
Response_Verifyresult response = new Response_Verifyresult();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
var service = _serviceProvider.GetService<ISO15118_20Service>();
if (service != null)
{
response = await service.RequestVerifyresult(request);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 재발급 (ISO15118-20)
/// </summary>
[Tags("VPKI API v2 prov")]
[HttpPost]
[Route("prov/reissue")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> ProvReissue([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_20Service>();
//if (service != null)
//{
// response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.prov_cert);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
/// <summary>
/// 인증서 폐기 (ISO15118-20)
/// </summary>
[Tags("VPKI API v2 prov")]
[HttpPost]
[Route("prov/revoke")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> ProvRevoke([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_20Service>();
//if (service != null)
//{
// response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.prov_cert);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
#endregion
#region vehicle
/// <summary>
/// CSR 생성 요청 (ISO15118-20) vehicle
/// </summary>
[Tags("VPKI API v2 vehicle")]
[HttpPost]
[Route("vehicle/tbscsr")]
public async Task<IResult> VehicleTbscsr([FromBody] Request_Tbscsr _request)
{
Response_Tbscsr response = new Response_Tbscsr();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(_request).LogModelToString($"Request ({guid})"));
var service = _serviceProvider.GetService<ISO15118_20Service>();
if (service != null)
{
response = await service.RequestTbscsr(_request, Library.Enums.VpkiType.vehicle_cert);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 발급 요청 (ISO15118-20) vehicle
/// </summary>
[Tags("VPKI API v2 vehicle")]
[HttpPost]
[Route("vehicle/certificate")]
public async Task<IResult> VehicleCertificate([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_20Service>();
if (service != null)
{
response = await service.RequestCertificate(_request, Library.Enums.VpkiType.vehicle_cert);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 검증 결과 전송 (ISO15118-20) vehicle
/// </summary>
[Tags("VPKI API v2 vehicle")]
[HttpPost]
[Route("vehicle/verifyresult")]
public async Task<IResult> VehicleVerifyresult([FromBody] Request_Verifyresult request)
{
Response_Verifyresult response = new Response_Verifyresult();
Guid guid = Guid.NewGuid();
Log4net.WriteLine(GetRequestLog(request).LogModelToString($"Request ({guid})"));
var service = _serviceProvider.GetService<ISO15118_20Service>();
if (service != null)
{
response = await service.RequestVerifyresult(request);
}
Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
return Results.Ok(response);
}
/// <summary>
/// 인증서 재발급 (ISO15118-20)
/// </summary>
[Tags("VPKI API v2 vehicle")]
[HttpPost]
[Route("vehicle/reissue")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> VehicleReissue([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_20Service>();
//if (service != null)
//{
// response = await service.RequestCertificateReissue(request, Library.Enums.VpkiType.vehicle_cert);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
/// <summary>
/// 인증서 폐기 (ISO15118-20)
/// </summary>
[Tags("VPKI API v2 vehicle")]
[HttpPost]
[Route("vehicle/revoke")]
[ApiExplorerSettings(IgnoreApi = true)]
public async Task<IResult> VehicleRevoke([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_20Service>();
//if (service != null)
//{
// response = await service.RequestCertificateRevoke(request, Library.Enums.VpkiType.vehicle_cert);
//}
//Log4net.WriteLine(GetResponseLog(response).LogModelToString($"Response ({guid})"));
//return Results.Ok(response);
await Task.CompletedTask;
return Results.NotFound();
}
#endregion
}
}