diff --git a/src/Jackett.Common/Utils/Clients/WebClient.cs b/src/Jackett.Common/Utils/Clients/WebClient.cs index c0efb373a..1a1cdbdf7 100644 --- a/src/Jackett.Common/Utils/Clients/WebClient.cs +++ b/src/Jackett.Common/Utils/Clients/WebClient.cs @@ -174,8 +174,7 @@ namespace Jackett.Common.Utils.Clients var postData = ""; if (request.Type == RequestType.POST) { - var lines = request.PostData?.Select(kvp => kvp.Key + "=" + kvp.Value); - lines ??= new List(); + var lines = request.PostData?.Select(kvp => kvp.Key + "=" + kvp.Value).ToList() ?? new List(); postData = $" PostData: {{{string.Join(", ", lines)}}} RawBody: {request.RawBody}"; } logger.Debug($"WebClient({ClientType}).GetResultAsync(Method: {request.Type} Url: {request.Url}{postData})"); diff --git a/src/Jackett.Test/Utils/Logging/CleanseLogMessageFixture.cs b/src/Jackett.Test/Utils/Logging/CleanseLogMessageFixture.cs new file mode 100644 index 000000000..1d1942c3f --- /dev/null +++ b/src/Jackett.Test/Utils/Logging/CleanseLogMessageFixture.cs @@ -0,0 +1,20 @@ +using FluentAssertions; +using Jackett.Common.Utils.Logging; +using NUnit.Framework; + +namespace Jackett.Test.Utils.Logging +{ + [TestFixture] + public class CleanseLogMessageFixture + { + [TestCase(@"WebClient(HttpWebClient2).GetResultAsync(Method: POST Url: https://some-site.org/takelogin.php PostData: {username=mySecret, password=mySecret} RawBody: )")] + public void should_clean_message(string message) + { + var cleansedMessage = CleanseLogMessage.Cleanse(message); + + cleansedMessage.Should().NotContain("mySecret"); + cleansedMessage.Should().NotContain("123%@%_@!#^#@"); + cleansedMessage.Should().NotContain("01233210"); + } + } +}