|
@@ -1,5 +1,6 @@
|
|
|
using EVCB_OCPP.WSServer.Service.WsService;
|
|
|
using Microsoft.AspNetCore.Builder;
|
|
|
+using Microsoft.AspNetCore.Http;
|
|
|
using NLog;
|
|
|
using System;
|
|
|
using System.Collections.Generic;
|
|
@@ -13,7 +14,10 @@ public static class MapApiServceExtention
|
|
|
{
|
|
|
public static void MapApiServce(this WebApplication webApplication)
|
|
|
{
|
|
|
- var helpFunc = () => {
|
|
|
+ var pass = webApplication.Configuration["apipass"];
|
|
|
+
|
|
|
+ var helpFunc = () =>
|
|
|
+ {
|
|
|
return string.Join("\r\n", new[] {
|
|
|
"Command help!!",
|
|
|
"lcn : List Customer Name",
|
|
@@ -29,12 +33,12 @@ public static class MapApiServceExtention
|
|
|
webApplication.MapPost("/stop", (ProtalServer server) => {
|
|
|
server.Stop();
|
|
|
return "Command stop";
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/gc", () => {
|
|
|
GC.Collect();
|
|
|
return "Command GC";
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/lc", (ProtalServer server) => {
|
|
|
List<string> toReturn = new List<string>() { "Command List Clients" };
|
|
@@ -47,7 +51,7 @@ public static class MapApiServceExtention
|
|
|
i++;
|
|
|
}
|
|
|
return string.Join("\r\n", toReturn);
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/lcn", (ProtalServer server) => {
|
|
|
List<string> toReturn = new List<string> { "Command List Customer Name" };
|
|
@@ -60,7 +64,7 @@ public static class MapApiServceExtention
|
|
|
iLcn++;
|
|
|
}
|
|
|
return string.Join("\r\n", toReturn);
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/silent", () => {
|
|
|
foreach (var rule in LogManager.Configuration.LoggingRules)
|
|
@@ -78,7 +82,7 @@ public static class MapApiServceExtention
|
|
|
}
|
|
|
}
|
|
|
return "Command silent";
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/show", () => {
|
|
|
foreach (var rule in LogManager.Configuration.LoggingRules)
|
|
@@ -96,13 +100,13 @@ public static class MapApiServceExtention
|
|
|
}
|
|
|
}
|
|
|
return "Command show";
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapGet("/threads", () => {
|
|
|
ThreadPool.GetMaxThreads(out var maxWorkerThread, out var maxCompletionPortThreads);
|
|
|
ThreadPool.GetAvailableThreads(out var avaliableWorkerThread, out var avaliableCompletionPortThreads);
|
|
|
return $"WorkerThread:{avaliableWorkerThread}/{maxWorkerThread} CompletionPortThreads{avaliableCompletionPortThreads}/{maxCompletionPortThreads}";
|
|
|
- });
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
|
|
|
webApplication.MapPost("/threads", (int min, int max) => {
|
|
|
ThreadPool.GetMaxThreads(out var maxWorkerThread, out var maxCompletionPortThreads);
|
|
@@ -110,6 +114,18 @@ public static class MapApiServceExtention
|
|
|
ThreadPool.SetMinThreads(min, 0);
|
|
|
ThreadPool.SetMaxThreads(max, maxCompletionPortThreads);
|
|
|
return $"WorkerThread:{avaliableWorkerThread}/{maxWorkerThread} CompletionPortThreads{avaliableCompletionPortThreads}/{maxCompletionPortThreads}";
|
|
|
+ }).AddAuthFilter(pass);
|
|
|
+ }
|
|
|
+
|
|
|
+ public static void AddAuthFilter(this RouteHandlerBuilder routeHandlerBuilder, string pass)
|
|
|
+ {
|
|
|
+ routeHandlerBuilder.AddEndpointFilter(async (context, next) => {
|
|
|
+ var key = context.HttpContext.Request.Headers["key"];
|
|
|
+ if (key != pass)
|
|
|
+ {
|
|
|
+ return Results.BadRequest();
|
|
|
+ }
|
|
|
+ return await next(context);
|
|
|
});
|
|
|
}
|
|
|
}
|