You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by am...@apache.org on 2019/10/14 04:01:05 UTC
svn commit: r1868419 - in /jackrabbit/oak/trunk/oak-run/src:
main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
Author: amitj
Date: Mon Oct 14 04:01:05 2019
New Revision: 1868419
URL: http://svn.apache.org/viewvc?rev=1868419&view=rev
Log:
OAK-8697: Filter sensitive information when logging parameters for 'datastore' command
Removed mongo URI and azure blob connection string from logging args
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
Modified: jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java?rev=1868419&r1=1868418&r2=1868419&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/run/DataStoreCommand.java Mon Oct 14 04:01:05 2019
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.run;
import java.io.File;
import java.io.IOException;
import java.lang.management.ManagementFactory;
+import java.util.Arrays;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
@@ -218,7 +219,9 @@ public class DataStoreCommand implements
}
private static void logCliArgs(String[] args) {
- log.info("Command line arguments used for datastore command [{}]", Joiner.on(' ').join(args));
+ String [] filteredArgs = Arrays.stream(args).filter(
+ str -> !str.startsWith("az:") && !str.startsWith("mongodb:")).toArray(String[]::new);
+ log.info("Command line arguments used for datastore command [{}]", Joiner.on(' ').join(filteredArgs));
List<String> inputArgs = ManagementFactory.getRuntimeMXBean().getInputArguments();
if (!inputArgs.isEmpty()) {
log.info("System properties and vm options passed {}", inputArgs);
Modified: jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java?rev=1868419&r1=1868418&r2=1868419&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java (original)
+++ jackrabbit/oak/trunk/oak-run/src/test/java/org/apache/jackrabbit/oak/run/DataStoreCommandTest.java Mon Oct 14 04:01:05 2019
@@ -87,7 +87,6 @@ import org.junit.After;
import org.junit.Assert;
import org.junit.Assume;
import org.junit.Before;
-import org.junit.Ignore;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TemporaryFolder;
@@ -231,6 +230,38 @@ public class DataStoreCommandTest {
}
@Test
+ public void testNoSensitiveParams() throws Exception {
+ storeFixture.close();
+ File dump = temporaryFolder.newFolder();
+ List<String> argsList = Lists
+ .newArrayList("--check-consistency", "--" + getOption(blobFixture.getType()), blobFixture.getConfigPath(), "--out-dir",
+ dump.getAbsolutePath(), storeFixture.getConnectionString(), "--reset-log-config", "false", "--work-dir",
+ temporaryFolder.newFolder().getAbsolutePath());
+ if (!Strings.isNullOrEmpty(additionalParams)) {
+ argsList.add(additionalParams);
+ }
+
+ log.info("Running testNoSensitiveParams: {}", argsList);
+ LogCustomizer customLogs = LogCustomizer
+ .forLogger(DataStoreCommand.class.getName())
+ .enable(Level.INFO)
+ .filter(Level.INFO)
+ .matchesRegex(".*mongodb:.*|.*az:.*")
+ .create();
+ customLogs.starting();
+
+ DataStoreCommand cmd = new DataStoreCommand();
+ try {
+ cmd.execute(argsList.toArray(new String[0]));
+ } catch (Exception e) {
+ log.error("", e);
+ }
+
+ Assert.assertEquals(0, customLogs.getLogs().size());
+ customLogs.finished();
+ }
+
+ @Test
public void testMissingOpParams() throws Exception {
storeFixture.close();
File dump = temporaryFolder.newFolder();