[tor-commits] [metrics-base/master] Stop using a security manager for executing tests.

karsten at torproject.org karsten at torproject.org
Tue Jan 14 15:57:48 UTC 2020


commit 264e498f54a20f7d299daaf2533d043f880e6a8b
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu Dec 12 09:44:06 2019 +0100

    Stop using a security manager for executing tests.
    
    A while ago we started using a security manager for executing tests in
    order to prevent them from bothering production servers.
    
    However, keeping the security policy up to date for testing new
    functionality is becoming difficult:
    
     - The recently extended CollecTor module for indexing files
       asynchronously and creating hard links broke tests in unexpected
       way by requiring permission java.nio.file.LinkPermission "hard";
    
     - Turns out that parallel streams used for sanitizing web server logs
       internally create threads that do not have the permissions as
       defined in our custom security policy.
    
    All in all it seems better to throw out the security manager at all
    and prevent tests from bothering production servers simply by not
    executing them on production servers.
---
 java/base.xml         |  2 --
 java/junittest.policy | 21 ---------------------
 2 files changed, 23 deletions(-)

diff --git a/java/base.xml b/java/base.xml
index 6cb1693..6eb3f63 100644
--- a/java/base.xml
+++ b/java/base.xml
@@ -185,8 +185,6 @@
            haltonfailure="true"
            printsummary="on">
       <jvmarg value="-DLOGBASE=${generated}/test-logs"/>
-      <jvmarg value="-Djava.security.policy=${buildresources}/junittest.policy"/>
-      <jvmarg value="-Djava.security.manager"/>
       <classpath refid="test.classpath"/>
       <formatter type="plain" usefile="false"/>
       <batchtest>
diff --git a/java/junittest.policy b/java/junittest.policy
deleted file mode 100644
index 156938e..0000000
--- a/java/junittest.policy
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Prevent tests from bothering production servers. */
-
-grant {
-  permission java.io.FilePermission "<<ALL FILES>>", "read, write, delete, execute";
-  permission java.util.PropertyPermission "*", "read, write";
-  permission java.lang.RuntimePermission "setIO";
-  permission java.lang.RuntimePermission "accessClassInPackage.sun.nio.fs";
-  permission java.lang.RuntimePermission "accessDeclaredMembers";
-  permission java.lang.RuntimePermission "getFileStoreAttributes";
-  permission java.lang.RuntimePermission "getStackTrace";
-  permission java.lang.RuntimePermission "modifyThread";
-  permission java.lang.reflect.ReflectPermission "suppressAccessChecks";
-  permission java.lang.RuntimePermission "shutdownHooks";
-  permission java.lang.RuntimePermission "accessClassInPackage.sun.reflect";
-  permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.protocol.http";
-  permission java.lang.RuntimePermission "accessClassInPackage.sun.net.www.http";
-  permission java.lang.RuntimePermission "getProtectionDomain";
-  permission java.lang.RuntimePermission "reflectionFactoryAccess";
-  permission java.lang.RuntimePermission "setFactory";
-  permission java.nio.file.LinkPermission "hard";
-};



More information about the tor-commits mailing list