[FELIX-4975] fileinstall's ConfigInstaller leaks it's permission checks to caller
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@1720103 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
index 762591a..0ef018e 100644
--- a/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
+++ b/fileinstall/src/main/java/org/apache/felix/fileinstall/internal/ConfigInstaller.java
@@ -20,6 +20,8 @@
import java.io.*;
import java.net.URI;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
import java.util.*;
import org.apache.felix.cm.file.ConfigurationHandler;
@@ -86,7 +88,28 @@
deleteConfig(artifact);
}
- public void configurationEvent(ConfigurationEvent configurationEvent)
+ public void configurationEvent(final ConfigurationEvent configurationEvent)
+ {
+ if (System.getSecurityManager() != null)
+ {
+ AccessController.doPrivileged(
+ new PrivilegedAction<Void>()
+ {
+ public Void run()
+ {
+ doConfigurationEvent(configurationEvent);
+ return null;
+ }
+ }
+ );
+ }
+ else
+ {
+ doConfigurationEvent(configurationEvent);
+ }
+ }
+
+ public void doConfigurationEvent(ConfigurationEvent configurationEvent)
{
// Check if writing back configurations has been disabled.
{