aboutsummaryrefslogtreecommitdiffstats
path: root/server/sonar-webserver
diff options
context:
space:
mode:
authorDuarte Meneses <duarte.meneses@sonarsource.com>2021-05-28 16:24:43 -0500
committersonartech <sonartech@sonarsource.com>2021-06-09 20:03:05 +0000
commit3ea87269193e9a1b42493d8565a5c3a45fb9b223 (patch)
treed3529d45605a683f5ea43ad69ebf0d298b467c7a /server/sonar-webserver
parentaf1dfa3745c8e6257a4bbbb4129d5cff3e67b730 (diff)
downloadsonarqube-3ea87269193e9a1b42493d8565a5c3a45fb9b223.tar.gz
sonarqube-3ea87269193e9a1b42493d8565a5c3a45fb9b223.zip
SONAR-14886 Plugins should not modify SonarQube's home directory
Diffstat (limited to 'server/sonar-webserver')
-rw-r--r--server/sonar-webserver/src/main/java/org/sonar/server/app/WebServer.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/server/sonar-webserver/src/main/java/org/sonar/server/app/WebServer.java b/server/sonar-webserver/src/main/java/org/sonar/server/app/WebServer.java
index ac17c14cbdb..a3ddfc67900 100644
--- a/server/sonar-webserver/src/main/java/org/sonar/server/app/WebServer.java
+++ b/server/sonar-webserver/src/main/java/org/sonar/server/app/WebServer.java
@@ -24,8 +24,11 @@ import java.io.File;
import org.slf4j.LoggerFactory;
import org.sonar.process.MinimumViableSystem;
import org.sonar.process.Monitored;
+import org.sonar.process.PluginFileWriteRule;
+import org.sonar.process.PluginSecurityManager;
import org.sonar.process.ProcessEntryPoint;
import org.sonar.process.ProcessId;
+import org.sonar.process.ProcessProperties;
import org.sonar.process.Props;
import org.sonar.process.sharedmemoryfile.DefaultProcessCommands;
@@ -95,6 +98,13 @@ public class WebServer implements Monitored {
ProcessEntryPoint entryPoint = ProcessEntryPoint.createForArguments(args);
Props props = entryPoint.getProps();
new WebServerProcessLogging().configure(props);
+
+
+ PluginFileWriteRule writeRule = new PluginFileWriteRule(
+ props.nonNullValueAsFile(ProcessProperties.Property.PATH_HOME.getKey()).toPath(),
+ props.nonNullValueAsFile(ProcessProperties.Property.PATH_TEMP.getKey()).toPath());
+ PluginSecurityManager.restrictPlugins(writeRule);
+
WebServer server = new WebServer(props);
entryPoint.launch(server);
}