From fc28b9fd0dae50fd562b3dbc71896319a09d895c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=ED=8C=90=EB=8F=8C?= Date: Sat, 24 Aug 2024 19:58:47 +0900 Subject: [PATCH] =?UTF-8?q?git=20=EB=AC=B4=EC=B0=A8=EB=B3=84=20=EA=B3=B5?= =?UTF-8?q?=EA=B2=A9=20=EB=8C=80=EB=B9=84=EC=9A=A9=20=EC=9E=84=EC=8B=9C=20?= =?UTF-8?q?=EB=B0=A9=EC=96=B4=EC=A1=B0=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Server/System/GItWebhook.cs | 33 ++++++++++++--------------------- 1 file changed, 12 insertions(+), 21 deletions(-) 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) {