Read repository information in a doPriv to make security easier.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@638952 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
index ebdb018..aed0524 100644
--- a/bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
+++ b/bundlerepository/src/main/java/org/apache/felix/bundlerepository/RepositoryImpl.java
@@ -26,6 +26,7 @@
import java.util.Arrays;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
+import java.security.*;
import org.apache.felix.bundlerepository.metadataparser.XmlCommonHandler;
import org.apache.felix.bundlerepository.metadataparser.kxmlsax.KXml2SAXParser;
@@ -45,7 +46,21 @@
public RepositoryImpl(URL url) throws Exception
{
m_url = url;
- parseRepositoryFile(m_hopCount);
+ try
+ {
+ AccessController.doPrivileged(new PrivilegedExceptionAction()
+ {
+ public Object run() throws Exception
+ {
+ parseRepositoryFile(m_hopCount);
+ return null;
+ }
+ });
+ }
+ catch (PrivilegedActionException ex)
+ {
+ throw (Exception) ex.getCause();
+ }
}
public URL getURL()