catalina.policy
上传用户:bj_pst
上传日期:2019-07-07
资源大小:7353k
文件大小:10k
源码类别:

Java编程

开发平台:

Java

  1. // Licensed to the Apache Software Foundation (ASF) under one or more
  2. // contributor license agreements.  See the NOTICE file distributed with
  3. // this work for additional information regarding copyright ownership.
  4. // The ASF licenses this file to You under the Apache License, Version 2.0
  5. // (the "License"); you may not use this file except in compliance with
  6. // the License.  You may obtain a copy of the License at
  7. //
  8. //     http://www.apache.org/licenses/LICENSE-2.0
  9. //
  10. // Unless required by applicable law or agreed to in writing, software
  11. // distributed under the License is distributed on an "AS IS" BASIS,
  12. // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. // See the License for the specific language governing permissions and
  14. // limitations under the License.
  15. // ============================================================================
  16. // catalina.corepolicy - Security Policy Permissions for Tomcat 5
  17. //
  18. // This file contains a default set of security policies to be enforced (by the
  19. // JVM) when Catalina is executed with the "-security" option.  In addition
  20. // to the permissions granted here, the following additional permissions are
  21. // granted to the codebase specific to each web application:
  22. //
  23. // * Read access to the document root directory
  24. //
  25. // $Id: catalina.policy 681150 2008-07-30 18:01:44Z markt $
  26. // ============================================================================
  27. // ========== SYSTEM CODE PERMISSIONS =========================================
  28. // These permissions apply to javac
  29. grant codeBase "file:${java.home}/lib/-" {
  30.         permission java.security.AllPermission;
  31. };
  32. // These permissions apply to all shared system extensions
  33. grant codeBase "file:${java.home}/jre/lib/ext/-" {
  34.         permission java.security.AllPermission;
  35. };
  36. // These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
  37. grant codeBase "file:${java.home}/../lib/-" {
  38.         permission java.security.AllPermission;
  39. };
  40. // These permissions apply to all shared system extensions when
  41. // ${java.home} points at $JAVA_HOME/jre
  42. grant codeBase "file:${java.home}/lib/ext/-" {
  43.         permission java.security.AllPermission;
  44. };
  45. // ========== CATALINA CODE PERMISSIONS =======================================
  46. // These permissions apply to the launcher code
  47. grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" {
  48.         permission java.security.AllPermission;
  49. };
  50. // These permissions apply to the daemon code
  51. grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
  52.         permission java.security.AllPermission;
  53. };
  54. // These permissions apply to the commons-logging API
  55. grant codeBase "file:${catalina.home}/bin/commons-logging-api-1.1.1.jar" {
  56.         permission java.security.AllPermission;
  57. };
  58. // These permissions apply to the server startup code
  59. grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
  60.         permission java.security.AllPermission;
  61. };
  62. // These permissions apply to the JMX server
  63. grant codeBase "file:${catalina.home}/bin/jmx.jar" {
  64.         permission java.security.AllPermission;
  65. };
  66. // These permissions apply to JULI
  67. grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
  68.         permission java.util.PropertyPermission "java.util.logging.config.class", "read";
  69.         permission java.util.PropertyPermission "java.util.logging.config.file", "read";
  70.         permission java.io.FilePermission "${java.home}${file.separator}lib${file.separator}logging.properties", "read"; 
  71.         permission java.lang.RuntimePermission "shutdownHooks";
  72.         permission java.io.FilePermission "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
  73.         permission java.util.PropertyPermission "catalina.base", "read";
  74.         permission java.util.logging.LoggingPermission "control";
  75.         permission java.io.FilePermission "${catalina.base}${file.separator}logs", "read, write";
  76.         permission java.io.FilePermission "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
  77.         permission java.lang.RuntimePermission "getClassLoader";
  78.         // To enable per context logging configuration, permit read access to the appropriate file.
  79.         // Be sure that the logging configuration is secure before enabling such access
  80.         // eg for the examples web application:
  81.         // permission java.io.FilePermission "${catalina.base}${file.separator}webapps${file.separator}examples${file.separator}WEB-INF${file.separator}classes${file.separator}logging.properties", "read";
  82. };
  83. // These permissions apply to the servlet API classes
  84. // and those that are shared across all class loaders
  85. // located in the "common" directory
  86. grant codeBase "file:${catalina.home}/common/-" {
  87.         permission java.security.AllPermission;
  88. };
  89. // These permissions apply to the container's core code, plus any additional
  90. // libraries installed in the "server" directory
  91. grant codeBase "file:${catalina.home}/server/-" {
  92.         permission java.security.AllPermission;
  93. };
  94. // The permissions granted to the balancer WEB-INF/classes and WEB-INF/lib directory
  95. grant codeBase "file:${catalina.home}/webapps/balancer/-" {
  96.         permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester";
  97.         permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.util.digester.*";
  98. };
  99. // ========== WEB APPLICATION PERMISSIONS =====================================
  100. // These permissions are granted by default to all web applications
  101. // In addition, a web application will be given a read FilePermission
  102. // and JndiPermission for all files and directories in its document root.
  103. grant { 
  104.     // Required for JNDI lookup of named JDBC DataSource's and
  105.     // javamail named MimePart DataSource used to send mail
  106.     permission java.util.PropertyPermission "java.home", "read";
  107.     permission java.util.PropertyPermission "java.naming.*", "read";
  108.     permission java.util.PropertyPermission "javax.sql.*", "read";
  109.     // OS Specific properties to allow read access
  110.     permission java.util.PropertyPermission "os.name", "read";
  111.     permission java.util.PropertyPermission "os.version", "read";
  112.     permission java.util.PropertyPermission "os.arch", "read";
  113.     permission java.util.PropertyPermission "file.separator", "read";
  114.     permission java.util.PropertyPermission "path.separator", "read";
  115.     permission java.util.PropertyPermission "line.separator", "read";
  116.     // JVM properties to allow read access
  117.     permission java.util.PropertyPermission "java.version", "read";
  118.     permission java.util.PropertyPermission "java.vendor", "read";
  119.     permission java.util.PropertyPermission "java.vendor.url", "read";
  120.     permission java.util.PropertyPermission "java.class.version", "read";
  121.     permission java.util.PropertyPermission "java.specification.version", "read";
  122.     permission java.util.PropertyPermission "java.specification.vendor", "read";
  123.     permission java.util.PropertyPermission "java.specification.name", "read";
  124.     permission java.util.PropertyPermission "java.vm.specification.version", "read";
  125.     permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
  126.     permission java.util.PropertyPermission "java.vm.specification.name", "read";
  127.     permission java.util.PropertyPermission "java.vm.version", "read";
  128.     permission java.util.PropertyPermission "java.vm.vendor", "read";
  129.     permission java.util.PropertyPermission "java.vm.name", "read";
  130.     // Required for OpenJMX
  131.     permission java.lang.RuntimePermission "getAttribute";
  132.     // Allow read of JAXP compliant XML parser debug
  133.     permission java.util.PropertyPermission "jaxp.debug", "read";
  134.     // Precompiled JSPs need access to this package.
  135.     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
  136.     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
  137.     // Precompiled JSPs need access to this system property.
  138.     permission java.util.PropertyPermission "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
  139. };
  140. // You can assign additional permissions to particular web applications by
  141. // adding additional "grant" entries here, based on the code base for that
  142. // application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
  143. //
  144. // Different permissions can be granted to JSP pages, classes loaded from
  145. // the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
  146. // directory, or even to individual jar files in the /WEB-INF/lib/ directory.
  147. //
  148. // For instance, assume that the standard "examples" application
  149. // included a JDBC driver that needed to establish a network connection to the
  150. // corresponding database and used the scrape taglib to get the weather from
  151. // the NOAA web server.  You might create a "grant" entries like this:
  152. //
  153. // The permissions granted to the context root directory apply to JSP pages.
  154. // grant codeBase "file:${catalina.home}/webapps/examples/-" {
  155. //      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
  156. //      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
  157. // };
  158. //
  159. // The permissions granted to the context WEB-INF/classes directory
  160. // grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
  161. // };
  162. //
  163. // The permission granted to your JDBC driver
  164. // grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
  165. //      permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
  166. // };
  167. // The permission granted to the scrape taglib
  168. // grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
  169. //      permission java.net.SocketPermission "*.noaa.gov:80", "connect";
  170. // };