From f50d81322e6f0dfe3704b4ee1a93c4bf568dc4e7 Mon Sep 17 00:00:00 2001 From: David Boike Date: Fri, 10 Nov 2023 16:41:09 -0600 Subject: [PATCH] Sanitize endpoint names in URLs --- src/AppCommon/Commands/ServiceControlCommand.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/AppCommon/Commands/ServiceControlCommand.cs b/src/AppCommon/Commands/ServiceControlCommand.cs index ad86d296..d3721f24 100644 --- a/src/AppCommon/Commands/ServiceControlCommand.cs +++ b/src/AppCommon/Commands/ServiceControlCommand.cs @@ -1,4 +1,5 @@ using System.CommandLine; +using System.Net; using Newtonsoft.Json; using Newtonsoft.Json.Linq; using Particular.EndpointThroughputCounter.Data; @@ -302,13 +303,13 @@ async Task GetKnownEndpoints(CancellationToken cancell { if (useAuditCounts) { - var path = $"/endpoints/{endpoint.Name}/audit-count"; + var path = $"/endpoints/{endpoint.UrlName}/audit-count"; endpoint.AuditCounts = await primary.GetData(path, 2, cancellationToken); endpoint.CheckHourlyAuditDataIfNoMonitoringData = false; } else { - var path = $"/endpoints/{endpoint.Name}/messages/?per_page=1"; + var path = $"/endpoints/{endpoint.UrlName}/messages/?per_page=1"; var recentMessages = await primary.GetData(path, 2, cancellationToken); endpoint.CheckHourlyAuditDataIfNoMonitoringData = recentMessages.Any(); } @@ -320,6 +321,7 @@ async Task GetKnownEndpoints(CancellationToken cancell class ServiceControlEndpoint { public string Name { get; set; } + public string UrlName => WebUtility.UrlEncode(Name); public bool HeartbeatsEnabled { get; set; } public bool ReceivingHeartbeats { get; set; } public bool CheckHourlyAuditDataIfNoMonitoringData { get; set; }