changeset 71:4c15e7de1f9d

do not show password in test connection popup
author Pavel.Sher
date Thu, 23 Jul 2009 17:08:43 +0400
parents 1e5702d96c0f
children 8a9c3aa7e115
files mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java
diffstat 2 files changed, 14 insertions(+), 11 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Thu Jul 23 11:46:56 2009 +0400
+++ b/mercurial-common/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/command/CommandUtil.java	Thu Jul 23 17:08:43 2009 +0400
@@ -60,7 +60,7 @@
   }
 
   public static ExecResult runCommand(@NotNull GeneralCommandLine cli, final int executionTimeout, @NotNull Set<String> privateData) throws VcsException {
-    String cmdStr = cli.getCommandLineString();
+    String cmdStr = removePrivateData(cli.getCommandLineString(), privateData);
     Loggers.VCS.debug("Run command: " + cmdStr);
     ExecResult res = SimpleCommandLineProcessRunner.runCommand(cli, null, new SimpleCommandLineProcessRunner.RunCommandEventsAdapter() {
       @Override
@@ -69,23 +69,25 @@
       }
     });
 
-    cmdStr = removePrivateData(privateData, res, cmdStr);
+    removePrivateData(privateData, res);
 
     CommandUtil.checkCommandFailed(cmdStr, res);
     Loggers.VCS.debug(res.getStdout());
     return res;
   }
 
-  private static String removePrivateData(final Set<String> privateData, final ExecResult res, final String cmdStr) {
-    String newCmdStr = cmdStr;
+  private static void removePrivateData(final Set<String> privateData, final ExecResult res) {
+    res.setStdout(removePrivateData(res.getStdout(), privateData));
+    res.setStderr(removePrivateData(res.getStderr(), privateData));
+  }
+
+  public static String removePrivateData(final String str, final Set<String> privateData) {
+    String result = str;
     for (String data: privateData) {
       if (data == null || data.length() == 0) continue;
-      String stdout = res.getStdout().replace(data, "******");
-      res.setStdout(stdout);
-      String stderr = res.getStderr().replace(data, "******");
-      res.setStderr(stderr);
-      newCmdStr = newCmdStr.replace(data, "******");
+      result = result.replace(data, "******");
     }
-    return newCmdStr;
+
+    return result;
   }
 }
--- a/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Thu Jul 23 11:46:56 2009 +0400
+++ b/mercurial-server/src/jetbrains/buildServer/buildTriggers/vcs/mercurial/MercurialVcsSupport.java	Thu Jul 23 17:08:43 2009 +0400
@@ -239,7 +239,8 @@
     StringBuilder res = new StringBuilder();
     res.append(quoteIfNeeded(settings.getHgCommandPath()));
     res.append(" identify ");
-    res.append(quoteIfNeeded(settings.getRepositoryUrl()));
+    final String obfuscatedUrl = CommandUtil.removePrivateData(settings.getRepositoryUrl(), Collections.singleton(settings.getPassword()));
+    res.append(quoteIfNeeded(obfuscatedUrl));
     res.append('\n').append(id.execute());
     return res.toString();
   }