diff --git a/Server/System/GItWebhook.cs b/Server/System/GItWebhook.cs index 50bccca..b29ccb9 100644 --- a/Server/System/GItWebhook.cs +++ b/Server/System/GItWebhook.cs @@ -10,43 +10,34 @@ namespace Server.System public static Thread thread; private static AbstractGit git; + public static ErrorResp successResp; public static async Task Process(HttpContext context) { - //TODO 아무때나 호출되지 않게 만들기 string Response; try { string eaDelivery = context.Request.Headers["X-Gitea-Delivery"]; - string eaEvent = context.Request.Headers["X-Gitea-Event"]; - string eaEventType = context.Request.Headers["X-Gitea-Event-Type"]; - string eaSignature = context.Request.Headers["X-Gitea-Signature"]; - Console.WriteLine($"X-Gitea-Delivery : {eaDelivery}"); - Console.WriteLine($"X-Gitea-Event : {eaEvent}"); - Console.WriteLine($"X-Gitea-Event-Type : {eaEventType}"); - Console.WriteLine($"X-Gitea-Signature : {eaSignature}"); + logger.Info($"SaveVersion : {eaDelivery}"); - //task를 쓰면 멈출수가 없기에 thread를 사용 - if (thread.ThreadState == ThreadState.Unstarted) - { - thread.Start(); - } - else if (thread.ThreadState == ThreadState.Stopped) + Response = successResp.ToJson(); + + //무작위 공격을 대비한 1차적인 방어조치 + if (eaDelivery == "" || eaDelivery.Length < 15) + return Response; + + if (thread.ThreadState == ThreadState.Stopped) { + logger.Info("new excel update"); thread = new Thread(git.Init); thread.Start(); - } + } else if (thread.ThreadState == ThreadState.WaitSleepJoin || thread.ThreadState == ThreadState.Running) { + logger.Info("new excel restart"); git.isRestart = true; } - - - ErrorResp error = new ErrorResp(); - error.status = 200; - error.message = "Success"; - Response = error.ToJson(); } catch (RuntimeException ex) {