org.eclipse.tomcat/conf/catalina.policy

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (download) (annotate)
Wed May 7 18:55:11 2003 UTC (6 years, 6 months ago) by kkolosow
Branch: MAIN
CVS Tags: v20040621, v20040623, v20040622, v20040426, v20060601, v20040913, v20030516, v20070514, v20050425, R3_0_2, R3_0_1, R3_3_1_1, v20050412b, v20050412c, v20050412a, v20031117, I20060605-1430, v20040223, R3_2_1, v20040308, R3_2_2, v20030610, v20050412, v20031103, v20031105, v20040522, v20060417, v20060412, v20040525, v20061023, R3_0, R3_1, R3_2, R3_3, v20050207, v20040510, v20050321, v20050328, v20050805, v200408, v20070316, v20040211, v20040213, v20031007, pre_R3_3, v20041101, v20040503, v20040507, v20051212, v20060223, v20050506, v20051128, v20040119, v20031014, v20060303, v20050227, v20031110, v20040823, v20050621, v20040106, v20050623, v20030902, v20031124_pre_Equinox_merge, v20060510, Root_Post_3_2, R3_1_2, v20050526, R3_1_1, v20070530, v20070531, v20060510a, R3_3_1, R3_3_2, v20051114, v20030507, v20031201, v20060212, v20031209, v20031208, v20030508, v20040315, v20061208, v20040319, HEAD
Branch point for: Post_3_2
Changes since 1.3: +76 -58 lines
22847     Upgrade to Tomcat 4.1.x
// ============================================================================
// catalina.corepolicy - Security Policy Permissions for Tomcat 4.0
//
// This file contains a default set of security policies to be enforced (by the
// JVM) when Catalina is executed with the "-security" option.  In addition
// to the permissions granted here, the following additional permissions are
// granted to the codebase specific to each web application:
//
// * Read access to the document root directory
//
// $Id: catalina.policy,v 1.28 2002/09/30 19:59:47 glenn Exp $
// ============================================================================


// ========== SYSTEM CODE PERMISSIONS =========================================


// These permissions apply to javac
grant codeBase "file:${java.home}/lib/-" {
  permission java.security.AllPermission;
};

// These permissions apply to all shared system extensions
grant codeBase "file:${java.home}/jre/lib/ext/-" {
  permission java.security.AllPermission;
};

// These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
grant codeBase "file:${java.home}/../lib/-" {
  permission java.security.AllPermission;
};

// These permissions apply to all shared system extensions when
// ${java.home} points at $JAVA_HOME/jre
grant codeBase "file:${java.home}/lib/ext/-" {
  permission java.security.AllPermission;
};


// ========== CATALINA CODE PERMISSIONS =======================================


// These permissions apply to the server startup code
grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
  permission java.security.AllPermission;
};

// These permissions apply to the servlet API classes
// and those that are shared across all class loaders
// located in the "common" directory
grant codeBase "file:${catalina.home}/common/-" {
  permission java.security.AllPermission;
};

// These permissions apply to the container's core code, plus any additional
// libraries installed in the "server" directory
grant codeBase "file:${catalina.home}/server/-" {
  permission java.security.AllPermission;
};

// These permissions apply to the jasper page compiler.
grant codeBase "file:${catalina.home}/shared/lib/jasper-compiler.jar" {
  permission java.security.AllPermission;
};

// These permissions apply to the jasper JSP runtime
grant codeBase "file:${catalina.home}/shared/lib/jasper-runtime.jar" {
  permission java.security.AllPermission;                    
};

// These permissions apply to the privileged admin and manager web applications
grant codeBase "file:${catalina.home}/server/webapps/admin/WEB-INF/classes/-" {
  permission java.security.AllPermission;  
};

grant codeBase "file:${catalina.home}/server/webapps/admin/WEB-INF/lib/struts.jar" {
  permission java.security.AllPermission;  
};

// ========== WEB APPLICATION PERMISSIONS =====================================


// These permissions are granted by default to all web applications
// In addition, a web application will be given a read FilePermission
// and JndiPermission for all files and directories in its document root.
grant { 
  // Required for JNDI lookup of named JDBC DataSource's and
  // javamail named MimePart DataSource used to send mail
  permission java.util.PropertyPermission "java.home", "read";
  permission java.util.PropertyPermission "java.naming.*", "read";
  permission java.util.PropertyPermission "javax.sql.*", "read";

  // OS Specific properties to allow read access
  permission java.util.PropertyPermission "os.name", "read";
  permission java.util.PropertyPermission "os.version", "read";
  permission java.util.PropertyPermission "os.arch", "read";
  permission java.util.PropertyPermission "file.separator", "read";
  permission java.util.PropertyPermission "path.separator", "read";
  permission java.util.PropertyPermission "line.separator", "read";

  // JVM properties to allow read access
  permission java.util.PropertyPermission "java.version", "read";
  permission java.util.PropertyPermission "java.vendor", "read";
  permission java.util.PropertyPermission "java.vendor.url", "read";
  permission java.util.PropertyPermission "java.class.version", "read";
  permission java.util.PropertyPermission "java.specification.version", "read";
  permission java.util.PropertyPermission "java.specification.vendor", "read";
  permission java.util.PropertyPermission "java.specification.name", "read";

  permission java.util.PropertyPermission "java.vm.specification.version", "read";
  permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
  permission java.util.PropertyPermission "java.vm.specification.name", "read";
  permission java.util.PropertyPermission "java.vm.version", "read";
  permission java.util.PropertyPermission "java.vm.vendor", "read";
  permission java.util.PropertyPermission "java.vm.name", "read";

  // Required for getting BeanInfo
  permission java.lang.RuntimePermission "accessClassInPackage.sun.beans";
  permission java.lang.RuntimePermission "accessClassInPackage.sun.beans.*";

  // Required for sevlets and JSP's
  permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util";  
  permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util.*";
  permission java.lang.RuntimePermission "defineClassInPackage.org.apache.catalina.util";
  permission java.lang.RuntimePermission "defineClassInPackage.org.apache.catalina.util.*";

  // Required for running servlets generated by JSPC
  permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
  permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";

  // Required for OpenJMX
  permission java.lang.RuntimePermission "getAttribute";

  // Allow read of JAXP compliant XML parser debug
  permission java.util.PropertyPermission "jaxp.debug", "read";
};


// You can assign additional permissions to particular web applications by
// adding additional "grant" entries here, based on the code base for that
// application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
//
// Different permissions can be granted to JSP pages, classes loaded from
// the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
// directory, or even to individual jar files in the /WEB-INF/lib/ directory.
//
// For instance, assume that the standard "examples" application
// included a JDBC driver that needed to establish a network connection to the
// corresponding database and used the scrape taglib to get the weather from
// the NOAA web server.  You might create a "grant" entries like this:
//
// The permissions granted to the context root directory apply to JSP pages.
// grant codeBase "file:${catalina.home}/webapps/examples/-" {
//   permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
//   permission java.net.SocketPermission "*.noaa.gov:80", "connect";
// };
//
// The permissions granted to the context WEB-INF/classes directory
// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
// };
//
// The permission granted to your JDBC driver
// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar" {
//   permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
// };
// The permission granted to the scrape taglib
// grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar" {
//   permission java.net.SocketPermission "*.noaa.gov:80", "connect";
// };