catalina.policy 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. // ============================================================================
  2. // catalina.corepolicy - Security Policy Permissions for Tomcat 5
  3. //
  4. // This file contains a default set of security policies to be enforced (by the
  5. // JVM) when Catalina is executed with the "-security" option. In addition
  6. // to the permissions granted here, the following additional permissions are
  7. // granted to the codebase specific to each web application:
  8. //
  9. // * Read access to the document root directory
  10. //
  11. // $Id: catalina.policy,v 1.11 2004/03/02 12:36:22 remm Exp $
  12. // ============================================================================
  13. // ========== SYSTEM CODE PERMISSIONS =========================================
  14. // These permissions apply to javac
  15. grant codeBase "file:${java.home}/lib/-" {
  16. permission java.security.AllPermission;
  17. };
  18. // These permissions apply to all shared system extensions
  19. grant codeBase "file:${java.home}/jre/lib/ext/-" {
  20. permission java.security.AllPermission;
  21. };
  22. // These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
  23. grant codeBase "file:${java.home}/../lib/-" {
  24. permission java.security.AllPermission;
  25. };
  26. // These permissions apply to all shared system extensions when
  27. // ${java.home} points at $JAVA_HOME/jre
  28. grant codeBase "file:${java.home}/lib/ext/-" {
  29. permission java.security.AllPermission;
  30. };
  31. // ========== CATALINA CODE PERMISSIONS =======================================
  32. // These permissions apply to the launcher code
  33. grant codeBase "file:${catalina.home}/bin/commons-launcher.jar" {
  34. permission java.security.AllPermission;
  35. };
  36. // These permissions apply to the daemon code
  37. grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
  38. permission java.security.AllPermission;
  39. };
  40. // These permissions apply to the commons-logging API
  41. grant codeBase "file:${catalina.home}/bin/commons-logging-api.jar" {
  42. permission java.security.AllPermission;
  43. };
  44. // These permissions apply to the server startup code
  45. grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
  46. permission java.security.AllPermission;
  47. };
  48. // These permissions apply to the JMX server
  49. grant codeBase "file:${catalina.home}/bin/jmx.jar" {
  50. permission java.security.AllPermission;
  51. };
  52. // These permissions apply to the servlet API classes
  53. // and those that are shared across all class loaders
  54. // located in the "common" directory
  55. grant codeBase "file:${catalina.home}/common/-" {
  56. permission java.security.AllPermission;
  57. };
  58. // These permissions apply to the container's core code, plus any additional
  59. // libraries installed in the "server" directory
  60. grant codeBase "file:${catalina.home}/server/-" {
  61. permission java.security.AllPermission;
  62. };
  63. // ========== WEB APPLICATION PERMISSIONS =====================================
  64. // These permissions are granted by default to all web applications
  65. // In addition, a web application will be given a read FilePermission
  66. // and JndiPermission for all files and directories in its document root.
  67. grant {
  68. // Required for JNDI lookup of named JDBC DataSource's and
  69. // javamail named MimePart DataSource used to send mail
  70. permission java.util.PropertyPermission "java.home", "read";
  71. permission java.util.PropertyPermission "java.naming.*", "read";
  72. permission java.util.PropertyPermission "javax.sql.*", "read";
  73. // OS Specific properties to allow read access
  74. permission java.util.PropertyPermission "os.name", "read";
  75. permission java.util.PropertyPermission "os.version", "read";
  76. permission java.util.PropertyPermission "os.arch", "read";
  77. permission java.util.PropertyPermission "file.separator", "read";
  78. permission java.util.PropertyPermission "path.separator", "read";
  79. permission java.util.PropertyPermission "line.separator", "read";
  80. // JVM properties to allow read access
  81. permission java.util.PropertyPermission "java.version", "read";
  82. permission java.util.PropertyPermission "java.vendor", "read";
  83. permission java.util.PropertyPermission "java.vendor.url", "read";
  84. permission java.util.PropertyPermission "java.class.version", "read";
  85. permission java.util.PropertyPermission "java.specification.version", "read";
  86. permission java.util.PropertyPermission "java.specification.vendor", "read";
  87. permission java.util.PropertyPermission "java.specification.name", "read";
  88. permission java.util.PropertyPermission "java.vm.specification.version", "read";
  89. permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
  90. permission java.util.PropertyPermission "java.vm.specification.name", "read";
  91. permission java.util.PropertyPermission "java.vm.version", "read";
  92. permission java.util.PropertyPermission "java.vm.vendor", "read";
  93. permission java.util.PropertyPermission "java.vm.name", "read";
  94. // Required for OpenJMX
  95. permission java.lang.RuntimePermission "getAttribute";
  96. // Allow read of JAXP compliant XML parser debug
  97. permission java.util.PropertyPermission "jaxp.debug", "read";
  98. // Precompiled JSPs need access to this package.
  99. permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
  100. permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
  101. };
  102. // You can assign additional permissions to particular web applications by
  103. // adding additional "grant" entries here, based on the code base for that
  104. // application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
  105. //
  106. // Different permissions can be granted to JSP pages, classes loaded from
  107. // the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
  108. // directory, or even to individual jar files in the /WEB-INF/lib/ directory.
  109. //
  110. // For instance, assume that the standard "examples" application
  111. // included a JDBC driver that needed to establish a network connection to the
  112. // corresponding database and used the scrape taglib to get the weather from
  113. // the NOAA web server. You might create a "grant" entries like this:
  114. //
  115. // The permissions granted to the context root directory apply to JSP pages.
  116. // grant codeBase "file:${catalina.home}/webapps/examples/-" {
  117. // permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
  118. // permission java.net.SocketPermission "*.noaa.gov:80", "connect";
  119. // };
  120. //
  121. // The permissions granted to the context WEB-INF/classes directory
  122. // grant codeBase "file:${catalina.home}/webapps/examples/WEB-INF/classes/-" {
  123. // };
  124. //
  125. // The permission granted to your JDBC driver
  126. // grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/driver.jar!/-" {
  127. // permission java.net.SocketPermission "dbhost.mycompany.com:5432", "connect";
  128. // };
  129. // The permission granted to the scrape taglib
  130. // grant codeBase "jar:file:${catalina.home}/webapps/examples/WEB-INF/lib/scrape.jar!/-" {
  131. // permission java.net.SocketPermission "*.noaa.gov:80", "connect";
  132. // };