You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by mi...@apache.org on 2018/03/17 23:54:06 UTC

[2/2] maven-scm git commit: [SCM-874] ScmResult output password masking does not handle multiline text

[SCM-874] ScmResult output password masking does not handle multiline text


Project: http://git-wip-us.apache.org/repos/asf/maven-scm/repo
Commit: http://git-wip-us.apache.org/repos/asf/maven-scm/commit/302ccb48
Tree: http://git-wip-us.apache.org/repos/asf/maven-scm/tree/302ccb48
Diff: http://git-wip-us.apache.org/repos/asf/maven-scm/diff/302ccb48

Branch: refs/heads/master
Commit: 302ccb4854af613b5818c4187e5d8fd537484bf9
Parents: 609c4bd
Author: Michael Osipov <mi...@apache.org>
Authored: Sun Mar 18 00:53:26 2018 +0100
Committer: Michael Osipov <mi...@apache.org>
Committed: Sun Mar 18 00:53:26 2018 +0100

----------------------------------------------------------------------
 .../src/main/java/org/apache/maven/scm/ScmResult.java   |  2 +-
 .../test/java/org/apache/maven/scm/ScmResultTest.java   | 12 +++++++++---
 2 files changed, 10 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/maven-scm/blob/302ccb48/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
----------------------------------------------------------------------
diff --git a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
index ace98d9..ae1ef0e 100644
--- a/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
+++ b/maven-scm-api/src/main/java/org/apache/maven/scm/ScmResult.java
@@ -44,7 +44,7 @@ public class ScmResult
     public static final String PASSWORD_PLACE_HOLDER = "********";
 
     //works for SVN and git
-    private Pattern patternForUserColonPasswordAtHost = Pattern.compile( "^.*:(.*)@.*$" );
+    private Pattern patternForUserColonPasswordAtHost = Pattern.compile( "^.*:(.*)@.*$", Pattern.DOTALL );
 
     /**
      * Copy constructor.

http://git-wip-us.apache.org/repos/asf/maven-scm/blob/302ccb48/maven-scm-api/src/test/java/org/apache/maven/scm/ScmResultTest.java
----------------------------------------------------------------------
diff --git a/maven-scm-api/src/test/java/org/apache/maven/scm/ScmResultTest.java b/maven-scm-api/src/test/java/org/apache/maven/scm/ScmResultTest.java
index 7db262e..621f4ea 100644
--- a/maven-scm-api/src/test/java/org/apache/maven/scm/ScmResultTest.java
+++ b/maven-scm-api/src/test/java/org/apache/maven/scm/ScmResultTest.java
@@ -30,14 +30,20 @@ public class ScmResultTest
 
     private static final String SCM_URL_GIT_COLON = "scm:git:https://username:" + PASSWORD + "@github.com/username/repo.git";
 
-    private static final String MOCK_ERROR_OUTPUT = "fatal repository " + SCM_URL_GIT_COLON + "does not exist";
+    private static final String MOCK_ERROR_OUTPUT = "fatal: repository '" + SCM_URL_GIT_COLON + "' not found";
+
+    private static final String MOCK_ERROR_MULTILINE_OUTPUT = "remote: Invalid username or password." + System.lineSeparator() + "fatal: Authentication failed for '" + SCM_URL_GIT_COLON + "'";
 
     public void testPasswordsAreMaskedInOutput()
         throws Exception
     {
         ScmResult result = new ScmResult( "git push", "git-push failed", MOCK_ERROR_OUTPUT, false );
-        assertNotSame( "Command Output contains password", MOCK_ERROR_OUTPUT, result.getCommandOutput() );
-        assertTrue( "Command Output not masked", result.getCommandOutput().contains( ScmResult.PASSWORD_PLACE_HOLDER ) );
+        assertNotSame( "Command output contains password", MOCK_ERROR_OUTPUT, result.getCommandOutput() );
+        assertTrue( "Command output not masked", result.getCommandOutput().contains( ScmResult.PASSWORD_PLACE_HOLDER ) );
+
+        result = new ScmResult( "git push", "git-push failed", MOCK_ERROR_MULTILINE_OUTPUT, false );
+        assertNotSame( "Command output contains password", MOCK_ERROR_MULTILINE_OUTPUT, result.getCommandOutput() );
+        assertTrue( "Command output not masked", result.getCommandOutput().contains( ScmResult.PASSWORD_PLACE_HOLDER ) );
     }
 
 }