provide tomcat conf files
[vfc/nfvo/driver/vnfm/svnfm.git] / nokia / vnfmdriver / vfcadaptorservice / deployment / src / main / release / conf / catalina.policy
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 // ============================================================================
17 // catalina.policy - Security Policy Permissions for Tomcat 7
18 //
19 // This file contains a default set of security policies to be enforced (by the
20 // JVM) when Catalina is executed with the "-security" option.  In addition
21 // to the permissions granted here, the following additional permissions are
22 // granted to each web application:
23 //
24 // * Read access to the web application's document root directory
25 // * Read, write and delete access to the web application's working directory
26 // ============================================================================
27
28
29 // ========== SYSTEM CODE PERMISSIONS =========================================
30
31
32 // These permissions apply to javac
33 grant codeBase "file:${java.home}/lib/-" {
34         permission java.security.AllPermission;
35 };
36
37 // These permissions apply to all shared system extensions
38 grant codeBase "file:${java.home}/jre/lib/ext/-" {
39         permission java.security.AllPermission;
40 };
41
42 // These permissions apply to javac when ${java.home] points at $JAVA_HOME/jre
43 grant codeBase "file:${java.home}/../lib/-" {
44         permission java.security.AllPermission;
45 };
46
47 // These permissions apply to all shared system extensions when
48 // ${java.home} points at $JAVA_HOME/jre
49 grant codeBase "file:${java.home}/lib/ext/-" {
50         permission java.security.AllPermission;
51 };
52
53
54 // ========== CATALINA CODE PERMISSIONS =======================================
55
56
57 // These permissions apply to the daemon code
58 grant codeBase "file:${catalina.home}/bin/commons-daemon.jar" {
59         permission java.security.AllPermission;
60 };
61
62
63 grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
64         permission java.io.FilePermission
65          "${java.home}${file.separator}lib${file.separator}logging.properties", "read";
66
67         permission java.io.FilePermission
68          "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
69         permission java.io.FilePermission
70          "${catalina.base}${file.separator}logs", "read, write";
71         permission java.io.FilePermission
72          "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
73
74         permission java.lang.RuntimePermission "shutdownHooks";
75         permission java.lang.RuntimePermission "getClassLoader";
76         permission java.lang.RuntimePermission "setContextClassLoader";
77
78         permission java.util.logging.LoggingPermission "control";
79
80         permission java.util.PropertyPermission "java.util.logging.config.class", "read";
81         permission java.util.PropertyPermission "java.util.logging.config.file", "read";
82         permission java.util.PropertyPermission "org.apache.juli.ClassLoaderLogManager.debug", "read";
83         permission java.util.PropertyPermission "catalina.base", "read";
84
85
86 };
87
88 // These permissions apply to the server startup code
89 grant codeBase "file:${catalina.home}/bin/bootstrap.jar" {
90         permission java.security.AllPermission;
91 };
92
93 // These permissions apply to the servlet API classes
94 // and those that are shared across all class loaders
95 // located in the "lib" directory
96 grant codeBase "file:${catalina.home}/lib/-" {
97         permission java.security.AllPermission;
98 };
99
100
101
102 // ========== WEB APPLICATION PERMISSIONS =====================================
103
104
105 // These permissions are granted by default to all web applications
106 // In addition, a web application will be given a read FilePermission
107 // and JndiPermission for all files and directories in its document root.
108 grant {
109     // Required for JNDI lookup of named JDBC DataSource's and
110     // javamail named MimePart DataSource used to send mail
111     permission java.util.PropertyPermission "java.home", "read";
112     permission java.util.PropertyPermission "java.naming.*", "read";
113     permission java.util.PropertyPermission "javax.sql.*", "read";
114
115     // OS Specific properties to allow read access
116     permission java.util.PropertyPermission "os.name", "read";
117     permission java.util.PropertyPermission "os.version", "read";
118     permission java.util.PropertyPermission "os.arch", "read";
119     permission java.util.PropertyPermission "file.separator", "read";
120     permission java.util.PropertyPermission "path.separator", "read";
121     permission java.util.PropertyPermission "line.separator", "read";
122
123     // JVM properties to allow read access
124     permission java.util.PropertyPermission "java.version", "read";
125     permission java.util.PropertyPermission "java.vendor", "read";
126     permission java.util.PropertyPermission "java.vendor.url", "read";
127     permission java.util.PropertyPermission "java.class.version", "read";
128     permission java.util.PropertyPermission "java.specification.version", "read";
129     permission java.util.PropertyPermission "java.specification.vendor", "read";
130     permission java.util.PropertyPermission "java.specification.name", "read";
131
132     permission java.util.PropertyPermission "java.vm.specification.version", "read";
133     permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
134     permission java.util.PropertyPermission "java.vm.specification.name", "read";
135     permission java.util.PropertyPermission "java.vm.version", "read";
136     permission java.util.PropertyPermission "java.vm.vendor", "read";
137     permission java.util.PropertyPermission "java.vm.name", "read";
138
139     // Required for OpenJMX
140     permission java.lang.RuntimePermission "getAttribute";
141
142     // Allow read of JAXP compliant XML parser debug
143     permission java.util.PropertyPermission "jaxp.debug", "read";
144
145     // All JSPs need to be able to read this package
146     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat";
147
148     // Precompiled JSPs need access to these packages.
149     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.el";
150     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
151     permission java.lang.RuntimePermission
152      "accessClassInPackage.org.apache.jasper.runtime.*";
153
154     // Precompiled JSPs need access to these system properties.
155     permission java.util.PropertyPermission
156      "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
157     permission java.util.PropertyPermission
158      "org.apache.el.parser.COERCE_TO_ZERO", "read";
159
160     // The cookie code needs these.
161     permission java.util.PropertyPermission
162      "org.apache.catalina.STRICT_SERVLET_COMPLIANCE", "read";
163     permission java.util.PropertyPermission
164      "org.apache.tomcat.util.http.ServerCookie.STRICT_NAMING", "read";
165     permission java.util.PropertyPermission
166      "org.apache.tomcat.util.http.ServerCookie.FWD_SLASH_IS_SEPARATOR", "read";
167
168     // Applications using Comet need to be able to access this package
169     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.comet";
170
171     // Applications using the legacy WebSocket implementation need to be able to access this package
172     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.websocket";
173
174     // Applications using the JSR-356 WebSocket implementation need to be able to access these packages
175     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket";
176     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.tomcat.websocket.server";
177 };
178
179
180 // The Manager application needs access to the following packages to support the
181 // session display functionality. These settings support the following
182 // configurations:
183 // - default CATALINA_HOME == CATALINA_BASE
184 // - CATALINA_HOME != CATALINA_BASE, per instance Manager in CATALINA_BASE
185 // - CATALINA_HOME != CATALINA_BASE, shared Manager in CATALINA_HOME
186 grant codeBase "file:${catalina.base}/webapps/manager/-" {
187     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina";
188     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.ha.session";
189     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager";
190     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager.util";
191     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util";
192 };
193 grant codeBase "file:${catalina.home}/webapps/manager/-" {
194     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina";
195     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.ha.session";
196     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager";
197     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager.util";
198     permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.util";
199 };
200
201 // You can assign additional permissions to particular web applications by
202 // adding additional "grant" entries here, based on the code base for that
203 // application, /WEB-INF/classes/, or /WEB-INF/lib/ jar files.
204 //
205 // Different permissions can be granted to JSP pages, classes loaded from
206 // the /WEB-INF/classes/ directory, all jar files in the /WEB-INF/lib/
207 // directory, or even to individual jar files in the /WEB-INF/lib/ directory.
208 //
209 // For instance, assume that the standard "examples" application
210 // included a JDBC driver that needed to establish a network connection to the
211 // corresponding database and used the scrape taglib to get the weather from
212 // the NOAA web server.  You might create a "grant" entries like this: