Skip to content

Commit

Permalink
Merge pull request #1478 from wiciok/master
Browse files Browse the repository at this point in the history
Fix not working password mask when connection string contains whitespace
  • Loading branch information
jzabroski committed May 18, 2021
2 parents 0efa70c + 161c048 commit 19101ef
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 2 deletions.
2 changes: 1 addition & 1 deletion src/FluentMigrator.Runner/Logging/PasswordMaskUtility.cs
Expand Up @@ -4,7 +4,7 @@ namespace FluentMigrator.Runner.Logging
{
public class PasswordMaskUtility : IPasswordMaskUtility
{
private static readonly Regex _matchPwd = new Regex("(?<Prefix>.*)(?<Key>PWD=|PASSWORD=)(?<OptionalValue>((?<None>(;|;$|$))|(?<Value>(([^;]+$|[^;]+)))(?<ValueTerminator>$|;)))(?<Postfix>.*)", RegexOptions.IgnoreCase | RegexOptions.Compiled);
private static readonly Regex _matchPwd = new Regex("(?<Prefix>.*)(?<Key>PWD\\s*=\\s*|PASSWORD\\s*=\\s*)(?<OptionalValue>((?<None>(;|;$|$))|(?<Value>(([^;]+$|[^;]+)))(?<ValueTerminator>$|;)))(?<Postfix>.*)", RegexOptions.IgnoreCase | RegexOptions.Compiled);

public string ApplyMask(string connectionString)
{
Expand Down
@@ -1,4 +1,5 @@
using FluentMigrator.Runner.Logging;

using NUnit.Framework;

namespace FluentMigrator.Tests.Unit.Loggers
Expand Down Expand Up @@ -31,14 +32,23 @@ public TestInputExpected[] GetTestInputExpected()
return new TestInputExpected[]
{
new TestInputExpected() { Input = @"Password=pass@123", Expected = $@"Password={mask}" },
new TestInputExpected() { Input = @"Password = pass@123", Expected = $@"Password = {mask}" },
new TestInputExpected() { Input = @"Password=pass@123;", Expected = $@"Password={mask};" },
new TestInputExpected() { Input = @"Password = pass@123;", Expected = $@"Password = {mask};" },
new TestInputExpected() { Input = @"Password=pass@123;;", Expected = $@"Password={mask};;" },
new TestInputExpected() { Input = @"Password = pass@123;;", Expected = $@"Password = {mask};;" },
new TestInputExpected() { Input = @"Password=", Expected = $@"Password={mask}" },
new TestInputExpected() { Input = @"Password = ", Expected = $@"Password = {mask}" },
new TestInputExpected() { Input = @"Password=;", Expected = $@"Password={mask};" },
new TestInputExpected() { Input = @"Password = ;", Expected = $@"Password = {mask};" },
new TestInputExpected() { Input = @"Password=;;", Expected = $@"Password={mask};;" },
new TestInputExpected() { Input = @"Password = ;;", Expected = $@"Password = {mask};;" },
new TestInputExpected() { Input = @"Password=;User Id =;", Expected = $@"Password={mask};User Id =;" },
new TestInputExpected() { Input = @"Password = ;User Id =;", Expected = $@"Password = {mask};User Id =;" },
new TestInputExpected() { Input = @"Server=127.0.0.1;Database=FluentMigrator;User Id=MyUser;Password=pass@123", Expected = $@"Server=127.0.0.1;Database=FluentMigrator;User Id=MyUser;Password={mask}" },
new TestInputExpected() { Input = @"Server=127.0.0.1;Database=FluentMigrator;Password=pass@123;User Id=MyUser", Expected = $@"Server=127.0.0.1;Database=FluentMigrator;Password={mask};User Id=MyUser" }
new TestInputExpected() { Input = @"Server = 127.0.0.1;Database = FluentMigrator;User Id = MyUser;Password = pass@123", Expected = $@"Server = 127.0.0.1;Database = FluentMigrator;User Id = MyUser;Password = {mask}" },
new TestInputExpected() { Input = @"Server=127.0.0.1;Database=FluentMigrator;Password=pass@123;User Id=MyUser", Expected = $@"Server=127.0.0.1;Database=FluentMigrator;Password={mask};User Id=MyUser" },
new TestInputExpected() { Input = @"Server = 127.0.0.1;Database = FluentMigrator;Password = pass@123;User Id = MyUser", Expected = $@"Server = 127.0.0.1;Database = FluentMigrator;Password = {mask};User Id = MyUser" }
};
}

Expand Down

0 comments on commit 19101ef

Please sign in to comment.