summaryrefslogtreecommitdiffstats
path: root/sonar-scanner-engine
diff options
context:
space:
mode:
authorMichal Duda <michal.duda@sonarsource.com>2019-06-18 13:38:43 +0200
committersonartech <sonartech@sonarsource.com>2019-06-28 08:45:00 +0200
commit9c3628f7f4d5745c010cb2f958129495fdcda632 (patch)
tree701eebb80614c357f7a8e59028976ddebf971e72 /sonar-scanner-engine
parent09295555aac7866169029b83e96ecc93df08baec (diff)
downloadsonarqube-9c3628f7f4d5745c010cb2f958129495fdcda632.tar.gz
sonarqube-9c3628f7f4d5745c010cb2f958129495fdcda632.zip
SONAR-12186 Fix SSF-78
Diffstat (limited to 'sonar-scanner-engine')
-rw-r--r--sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java38
-rw-r--r--sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java67
2 files changed, 2 insertions, 103 deletions
diff --git a/sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java b/sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java
index ebb8a8facaa..42f9b0ee5a8 100644
--- a/sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java
+++ b/sonar-scanner-engine/src/main/java/org/sonar/scanner/report/AnalysisContextReportPublisher.java
@@ -27,7 +27,6 @@ import java.nio.file.Files;
import java.util.Comparator;
import java.util.HashMap;
import java.util.Map;
-import java.util.Properties;
import java.util.TreeSet;
import org.apache.commons.lang.StringUtils;
import org.sonar.api.CoreProperties;
@@ -36,8 +35,6 @@ import org.sonar.api.batch.fs.internal.AbstractProjectOrModule;
import org.sonar.api.batch.fs.internal.DefaultInputModule;
import org.sonar.api.batch.fs.internal.InputModuleHierarchy;
import org.sonar.api.utils.System2;
-import org.sonar.api.utils.log.Logger;
-import org.sonar.api.utils.log.Loggers;
import org.sonar.core.platform.PluginInfo;
import org.sonar.scanner.bootstrap.GlobalServerSettings;
import org.sonar.scanner.bootstrap.ScannerPluginRepository;
@@ -51,8 +48,6 @@ public class AnalysisContextReportPublisher {
private static final String KEY_VALUE_FORMAT = " - %s=%s";
- private static final Logger LOG = Loggers.get(AnalysisContextReportPublisher.class);
-
private static final String ENV_PROP_PREFIX = "env.";
private static final String SONAR_PROP_PREFIX = "sonar.";
private static final int MAX_WIDTH = 1000;
@@ -81,10 +76,6 @@ public class AnalysisContextReportPublisher {
}
File analysisLog = writer.getFileStructure().analysisLog();
try (BufferedWriter fileWriter = Files.newBufferedWriter(analysisLog.toPath(), StandardCharsets.UTF_8)) {
- if (LOG.isDebugEnabled()) {
- writeEnvVariables(fileWriter);
- writeSystemProps(fileWriter);
- }
writePlugins(fileWriter);
writeGlobalSettings(fileWriter);
writeProjectSettings(fileWriter);
@@ -101,31 +92,6 @@ public class AnalysisContextReportPublisher {
}
}
- private void writeSystemProps(BufferedWriter fileWriter) throws IOException {
- fileWriter.write("System properties:\n");
- Properties sysProps = system.properties();
- for (String prop : new TreeSet<>(sysProps.stringPropertyNames())) {
- if (prop.startsWith(SONAR_PROP_PREFIX)) {
- continue;
- }
- fileWriter.append(String.format(KEY_VALUE_FORMAT, prop, sysProps.getProperty(prop))).append('\n');
- }
- }
-
- private void writeEnvVariables(BufferedWriter fileWriter) throws IOException {
- fileWriter.append("Environment variables:\n");
- Map<String, String> envVariables = system.envVariables();
- new TreeSet<>(envVariables.keySet())
- .forEach(envKey -> {
- try {
- String envValue = isSensitiveEnvVariable(envKey) ? "******" : envVariables.get(envKey);
- fileWriter.append(String.format(KEY_VALUE_FORMAT, envKey, envValue)).append('\n');
- } catch (IOException e) {
- throw new IllegalStateException(e);
- }
- });
- }
-
private void writeGlobalSettings(BufferedWriter fileWriter) throws IOException {
fileWriter.append("Global server settings:\n");
Map<String, String> props = globalServerSettings.properties();
@@ -199,10 +165,6 @@ public class AnalysisContextReportPublisher {
return propKey.startsWith(ENV_PROP_PREFIX) && system.envVariables().containsKey(propKey.substring(ENV_PROP_PREFIX.length()));
}
- private static boolean isSensitiveEnvVariable(String key) {
- return key.contains("_TOKEN") || key.contains("_PASSWORD") || key.contains("_SECURED");
- }
-
private static boolean isSensitiveProperty(String key) {
return key.equals(CoreProperties.LOGIN) || key.contains(".password") || key.contains(".secured") || key.contains(".token");
}
diff --git a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java
index 961a7dc5053..b883a266c3a 100644
--- a/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java
+++ b/sonar-scanner-engine/src/test/java/org/sonar/scanner/report/AnalysisContextReportPublisherTest.java
@@ -151,8 +151,7 @@ public class AnalysisContextReportPublisherTest {
publisher.init(writer);
List<String> lines = FileUtils.readLines(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8);
- assertThat(lines).containsExactly("Environment variables:",
- "System properties:",
+ assertThat(lines).containsExactly(
"SonarQube plugins:",
"Global server settings:",
"Project server settings:",
@@ -163,67 +162,6 @@ public class AnalysisContextReportPublisherTest {
}
@Test
- public void shouldNotDumpSQPropsInSystemProps() throws Exception {
- logTester.setLevel(LoggerLevel.DEBUG);
- ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder());
- Properties props = new Properties();
- props.setProperty(COM_FOO, "bar");
- props.setProperty(SONAR_SKIP, "true");
- when(system2.properties()).thenReturn(props);
- DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create()
- .setBaseDir(temp.newFolder())
- .setWorkDir(temp.newFolder())
- .setProperty("sonar.projectKey", "foo")
- .setProperty(COM_FOO, "bar")
- .setProperty(SONAR_SKIP, "true"));
- when(store.allModules()).thenReturn(singletonList(rootModule));
- when(hierarchy.root()).thenReturn(rootModule);
-
- publisher.init(writer);
-
- List<String> lines = FileUtils.readLines(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8);
- assertThat(lines).containsExactly("Environment variables:",
- "System properties:",
- " - com.foo=bar",
- "SonarQube plugins:",
- "Global server settings:",
- "Project server settings:",
- "Project scanner properties:",
- " - sonar.projectKey=foo",
- " - sonar.skip=true");
- }
-
- @Test
- public void shouldNotDumpEnvTwice() throws Exception {
- logTester.setLevel(LoggerLevel.DEBUG);
- ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder());
-
- Map<String, String> env = new HashMap<>();
- env.put(FOO, "BAR");
- env.put(BIZ, "BAZ");
- when(system2.envVariables()).thenReturn(env);
- DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create()
- .setBaseDir(temp.newFolder())
- .setWorkDir(temp.newFolder())
- .setProperty("sonar.projectKey", "foo")
- .setProperty("env." + FOO, "BAR"));
- when(store.allModules()).thenReturn(singletonList(rootModule));
- when(hierarchy.root()).thenReturn(rootModule);
- publisher.init(writer);
-
- String content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8);
- assertThat(content).containsOnlyOnce(FOO);
- assertThat(content).containsOnlyOnce(BIZ);
- assertThat(content).containsSubsequence(BIZ, FOO);
-
-
- content = FileUtils.readFileToString(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8);
- assertThat(content).containsOnlyOnce(FOO);
- assertThat(content).containsOnlyOnce(BIZ);
- assertThat(content).doesNotContain("env." + FOO);
- }
-
- @Test
public void shouldNotDumpSensitiveModuleProperties() throws Exception {
ScannerReportWriter writer = new ScannerReportWriter(temp.newFolder());
DefaultInputModule rootModule = new DefaultInputModule(ProjectDefinition.create()
@@ -314,8 +252,7 @@ public class AnalysisContextReportPublisherTest {
publisher.init(writer);
List<String> lines = FileUtils.readLines(writer.getFileStructure().analysisLog(), StandardCharsets.UTF_8);
- assertThat(lines).containsExactly("Environment variables:",
- "System properties:",
+ assertThat(lines).containsExactly(
"SonarQube plugins:",
"Global server settings:",
"Project server settings:",