35 lines
825 B
C#
35 lines
825 B
C#
using MxGateway.Server.Diagnostics;
|
|
|
|
namespace MxGateway.Server.Dashboard;
|
|
|
|
internal static class DashboardRedactor
|
|
{
|
|
private static readonly string[] SensitiveTextMarkers =
|
|
[
|
|
"apikey",
|
|
"api_key",
|
|
"authorization",
|
|
"credential",
|
|
"password",
|
|
"secret",
|
|
"token",
|
|
];
|
|
|
|
public static string? Redact(string? value)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(value))
|
|
{
|
|
return value;
|
|
}
|
|
|
|
if (value.Contains("mxgw_", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
return GatewayLogRedactor.RedactClientIdentity(value);
|
|
}
|
|
|
|
return SensitiveTextMarkers.Any(marker => value.Contains(marker, StringComparison.OrdinalIgnoreCase))
|
|
? GatewayLogRedactor.RedactedValue
|
|
: value;
|
|
}
|
|
}
|