This is an automated email from the ASF dual-hosted git repository.

jlmonteiro pushed a commit to branch jakartaee9-tck
in repository https://gitbox.apache.org/repos/asf/tomee-tck.git

commit 69a89e650011b6b7d0129903dbfc8ec9387bc17c
Author: Jean-Louis Monteiro <[email protected]>
AuthorDate: Mon Apr 26 16:31:34 2021 +0200

    Security update for permissions tests, jaxrs, servlet and security api
    
    Signed-off-by: Jean-Louis Monteiro <[email protected]>
---
 .../openejb/tck/commands/JavaTestCommand.groovy    |  9 ++-
 src/test/tomee-plume/conf/catalina.policy          | 72 ++++++++++++++++------
 src/test/tomee-plume/conf/context.xml              |  8 ---
 src/test/tomee-plume/conf/tomcat-users.xml         |  4 +-
 4 files changed, 63 insertions(+), 30 deletions(-)

diff --git a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy 
b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
index aece499..f0c9c13 100644
--- a/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
+++ b/src/test/script/openejb/tck/commands/JavaTestCommand.groovy
@@ -230,12 +230,17 @@ class JavaTestCommand
                 }
 
                 def containerJavaOpts = get('container.java.opts', "")
+
+                // force memory on tasks because with JDK 8 it's computed with 
a bit too much
+                containerJavaOpts += " -Xmx512m 
-Dtest.ejb.stateful.timeout.wait.seconds=60"
+
+
                 if (options.contains('security')) {
                     log.info("Enabling server security manager")
 
                     // -Djava.security.properties=conf/security.properties
-                    containerJavaOpts += " -Djava.security.manager " +
-                            
"-Djava.security.policy==${project.basedir}/${openejbHome}/conf/catalina.policy 
" +
+                    containerJavaOpts += " -Djava.security.manager 
-Dcts.home=${javaeeCtsHome} -Djava.security.debug=none " +
+                            
"-Djava.security.policy=${project.basedir}/${openejbHome}/conf/catalina.policy 
" +
                             
"-Djava.security.properties=${project.basedir}/${openejbHome}/conf/security.properties"
                 }
                 if (options.contains('websocket')) {
diff --git a/src/test/tomee-plume/conf/catalina.policy 
b/src/test/tomee-plume/conf/catalina.policy
index c18010f..82499e5 100644
--- a/src/test/tomee-plume/conf/catalina.policy
+++ b/src/test/tomee-plume/conf/catalina.policy
@@ -62,8 +62,8 @@ grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" 
{
 // These permissions apply to the logging API
 // Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
 // update this section accordingly.
-//  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
-grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
+grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {
+// grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
         permission java.io.FilePermission
          
"${java.home}${file.separator}lib${file.separator}logging.properties", "read";
 
@@ -90,6 +90,10 @@ grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
         permission java.util.PropertyPermission 
"org.apache.juli.ClassLoaderLogManager.debug", "read";
         permission java.util.PropertyPermission "catalina.base", "read";
 
+        // TomEE specific
+        permission java.util.PropertyPermission "tomee.*", "read";
+
+
         // Note: To enable per context logging configuration, permit read 
access to
         // the appropriate file. Be sure that the logging configuration is
         // secure before enabling such access.
@@ -115,9 +119,14 @@ grant codeBase "file:${catalina.home}/lib/-" {
 
 // If using a per instance lib directory, i.e. ${catalina.base}/lib,
 // then the following permission will need to be uncommented
-// grant codeBase "file:${catalina.base}/lib/-" {
-//         permission java.security.AllPermission;
-// };
+grant codeBase "file:${catalina.base}/lib/-" {
+        permission java.security.AllPermission;
+};
+
+// TomEE webapp for deployment
+grant codeBase "file:${catalina.base}/webapps/tomee/-" {
+    permission java.security.AllPermission;
+};
 
 
 // ========== WEB APPLICATION PERMISSIONS =====================================
@@ -157,6 +166,25 @@ grant {
     permission java.util.PropertyPermission "java.vm.vendor", "read";
     permission java.util.PropertyPermission "java.vm.name", "read";
 
+    // TomEE
+    permission java.util.PropertyPermission "tomee.*", "read";
+    permission java.util.PropertyPermission "openejb.*", "read";
+    permission java.util.PropertyPermission "user.name", "read";
+    permission java.util.PropertyPermission "java.io.tmpdir", "read";
+    permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.catalina.loader"; // tomee
+    permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.catalina.core"; // tomee
+    permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.catalina.realm"; // tomee
+    permission java.io.FilePermission "${catalina.base}/lib/-", "read"; // 
java ee api class, slf4j, owb, etc
+    permission java.lang.RuntimePermission "accessDeclaredMembers"; // owb
+    permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; // 
owb
+    permission java.net.SocketPermission "localhost", "connect,resolve"; // 
jndi
+    permission java.net.SocketPermission "127.0.0.1", "connect,resolve"; // 
jndi
+    permission javax.security.auth.AuthPermission "modifyPrincipals"; // tomee 
security
+    permission javax.security.auth.AuthPermission "modifyPrivateCredentials"; 
// tomee security
+
+    // TomEE for CTS classes in webapps
+    permission java.io.FilePermission "${cts.home}/dist/-", "read";
+
     // Required for OpenJMX
     permission java.lang.RuntimePermission "getAttribute";
 
@@ -175,6 +203,9 @@ grant {
     // Applications using WebSocket need to be able to access these packages
     permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.tomcat.websocket";
     permission java.lang.RuntimePermission 
"accessClassInPackage.org.apache.tomcat.websocket.server";
+
+    // TomEE for CTS classes
+    permission java.lang.RuntimePermission "accessClassInPackage.com.sun.ts.*";
 };
 
 
@@ -259,17 +290,22 @@ grant codeBase 
"file:${catalina.home}/webapps/host-manager/-" {
 // grant codeBase 
"war:file:${catalina.base}/webapps/examples.war*/WEB-INF/lib/foo.jar" {
 // };
 
-// ================ Apache TomEE ============== (To be refined)
-grant codeBase "jar:file:${catalina.home}/lib/*!/-" {
-    permission java.security.AllPermission;
-};
-grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
-    permission java.security.AllPermission;
-};
-grant codeBase "file:${catalina.base}/lib/-" {
-    permission java.security.AllPermission;
+// TomEE for CTS configuration
+grant codeBase 
"file:${cts.home}/dist/com/sun/ts/tests/servlet/ee/spec/security/permissiondd/servlet_ee_spec_security_permissiondd_web/-"
 {
+    permission java.util.PropertyPermission "cts.*", "read";
+
+    permission java.security.SecurityPermission "CTSPermission1_name";
+    permission java.security.SecurityPermission "CTSPermission1_name2";
+    permission java.security.SecurityPermission "CTSPermission2_name";
+    permission java.security.SecurityPermission "CTSPermission_second_name";
+
+    permission java.lang.RuntimePermission "loadLibrary.*";
+    permission java.lang.RuntimePermission "queuePrintJob";
+
+    permission java.net.SocketPermission "*", "connect";
+
+    permission java.io.FilePermission "*", "read";
+
+    permission java.util.PropertyPermission "*", "read";
 };
-grant {
-        // "standard" properties that can be read by anyone
-        permission java.security.AllPermission ;
-};
\ No newline at end of file
+
diff --git a/src/test/tomee-plume/conf/context.xml 
b/src/test/tomee-plume/conf/context.xml
index 5d42cfe..3c422ef 100644
--- a/src/test/tomee-plume/conf/context.xml
+++ b/src/test/tomee-plume/conf/context.xml
@@ -30,14 +30,6 @@
     -->
 
     <Valve 
className="org.apache.openejb.cts.TransactionalWorkaroundLeakGuardValve"/>
-    <!-- Rollback this because it causes some other tests to fail because they 
test the Form authentication and Tomcat
-    Does not allow multiple authenticator valve
-    We need to hear back or to find a way to only add this for jaspic webapp 
or tests
-
-    <Valve className="org.apache.catalina.authenticator.BasicAuthenticator"
-           
jaspicCallbackHandlerClass="org.apache.openejb.cts.CallbackHandlerImpl"
-    />
-    -->
 
     <Environment name="myUrl" value="http://google.com";
                  type="java.net.URL" override="false"/>
diff --git a/src/test/tomee-plume/conf/tomcat-users.xml 
b/src/test/tomee-plume/conf/tomcat-users.xml
index 7de2b4f..9ce0456 100644
--- a/src/test/tomee-plume/conf/tomcat-users.xml
+++ b/src/test/tomee-plume/conf/tomcat-users.xml
@@ -21,9 +21,9 @@
   <user name="admin" password="admin" roles="manager"/>
   <user name="jave_vi" password="javaee_vi" roles="staff"/>
   <user name="javee_vi" password="javaee_vi" roles="staff"/>
-  <user name="javajoe" password="javajoe" roles="Manager,Employee,guest"/>
+  <user name="javajoe" password="javajoe" 
roles="Manager,Employee,guest,OTHERROLE"/>
   <user name="javaee" password="javaee" 
roles="Administrator,Employee,mgr,asadmin"/>
-  <user name="j2ee" password="j2ee" 
roles="Administrator,Employee,mgr,asadmin,staff"/>
+  <user name="j2ee" password="j2ee" 
roles="Administrator,Employee,mgr,asadmin,staff,DIRECTOR"/>
 
   <user name="CN=CTS, OU=Java Software, O=Sun Microsystems Inc., L=Burlington, 
ST=MA, C=US" roles="Administrator"/>
 </tomcat-users>

Reply via email to