~ubuntu-branches/ubuntu/oneiric/tomcat6/oneiric

« back to all changes in this revision

Viewing changes to webapps/docs/security-manager-howto.xml

  • Committer: Bazaar Package Importer
  • Author(s): Thierry Carrez
  • Date: 2010-07-20 14:36:48 UTC
  • mfrom: (2.2.17 sid)
  • Revision ID: james.westby@ubuntu.com-20100720143648-23y81x6cq1kv1z00
Tags: 6.0.28-2
* Add debconf questions for user, group and Java options.
* Use ucf to install /etc/default/tomcat6 from a template
* Drop CATALINA_BASE and CATALINA_HOME from /etc/default/tomcat6 since we
  shouldn't encourage users to change those anyway

Show diffs side-by-side

added added

removed removed

Lines of Context:
124
124
    but disallow it from using file access to read any other files (unless
125
125
    permissions for those files are explicitly granted).</p>
126
126
 
127
 
    <p>Also, Tomcat always dynamically creates the following file permission:</p>
128
 
<source>  
 
127
    <p>Also, Tomcat always dynamically creates the following file permissions:</p>
 
128
<source>
129
129
permission java.io.FilePermission "** your application context**", "read";
130
 
</source>  
131
 
    <p>Where **your application context** equals the folder(or WAR file) under which 
132
 
    your application has been deployed. </p>  
 
130
 
 
131
permission java.io.FilePermission
 
132
  "** application working directory**", "read,write";
 
133
permission java.io.FilePermission
 
134
  "** application working directory**/-", "read,write,delete";
 
135
</source>
 
136
    <p>Where **your application context** equals the folder (or WAR file) under which 
 
137
    your application has been deployed and **application working directory** is the
 
138
    temporary directory provided to your application as required by the
 
139
    Servlet Specification.</p>
133
140
 
134
141
  </subsection>
135
142
 
174
181
  looks like this:</p>
175
182
<source>
176
183
// ============================================================================
177
 
// catalina.corepolicy - Security Policy Permissions for Tomcat 6
 
184
// catalina.policy - Security Policy Permissions for Tomcat 6
178
185
//
179
186
// This file contains a default set of security policies to be enforced (by the
180
187
// JVM) when Catalina is executed with the "-security" option.  In addition
181
188
// to the permissions granted here, the following additional permissions are
182
189
// granted to the codebase specific to each web application:
183
190
//
184
 
// * Read access to the document root directory
 
191
// * Read access to its document root directory
 
192
// * Read, write and delete access to its working directory
185
193
//
186
194
// ============================================================================
187
195
 
220
228
};
221
229
 
222
230
// These permissions apply to the logging API
 
231
// Note: If tomcat-juli.jar is in ${catalina.base} and not in ${catalina.home},
 
232
// update this section accordingly.
 
233
//  grant codeBase "file:${catalina.base}/bin/tomcat-juli.jar" {..}
223
234
grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
224
 
        permission java.security.AllPermission;
 
235
        permission java.io.FilePermission
 
236
         "${java.home}${file.separator}lib${file.separator}logging.properties", "read"; 
 
237
 
 
238
        permission java.io.FilePermission
 
239
         "${catalina.base}${file.separator}conf${file.separator}logging.properties", "read";
 
240
        permission java.io.FilePermission
 
241
         "${catalina.base}${file.separator}logs", "read, write";
 
242
        permission java.io.FilePermission
 
243
         "${catalina.base}${file.separator}logs${file.separator}*", "read, write";
 
244
 
 
245
        permission java.lang.RuntimePermission "shutdownHooks";
 
246
        permission java.lang.RuntimePermission "getClassLoader";
 
247
        permission java.lang.RuntimePermission "setContextClassLoader";
 
248
 
 
249
        permission java.util.logging.LoggingPermission "control";
 
250
 
 
251
        permission java.util.PropertyPermission "java.util.logging.config.class", "read";
 
252
        permission java.util.PropertyPermission "java.util.logging.config.file", "read";
 
253
        permission java.util.PropertyPermission "catalina.base", "read";
 
254
 
 
255
        // Note: To enable per context logging configuration, permit read access to
 
256
        // the appropriate file. Be sure that the logging configuration is
 
257
        // secure before enabling such access.
 
258
        // E.g. for the examples web application:
 
259
        // permission java.io.FilePermission "${catalina.base}${file.separator}
 
260
        //  webapps${file.separator}examples${file.separator}WEB-INF
 
261
        //  ${file.separator}classes${file.separator}logging.properties", "read";
225
262
};
226
263
 
227
264
// These permissions apply to the server startup code
237
274
};
238
275
 
239
276
 
 
277
// If using a per instance lib directory, i.e. ${catalina.base}/lib,
 
278
// then the following permission will need to be uncommented
 
279
// grant codeBase "file:${catalina.base}/lib/-" {
 
280
//         permission java.security.AllPermission;
 
281
// };
 
282
 
 
283
 
240
284
// ========== WEB APPLICATION PERMISSIONS =====================================
241
285
 
242
286
 
263
307
    permission java.util.PropertyPermission "java.vendor", "read";
264
308
    permission java.util.PropertyPermission "java.vendor.url", "read";
265
309
    permission java.util.PropertyPermission "java.class.version", "read";
266
 
        permission java.util.PropertyPermission "java.specification.version", "read";
267
 
        permission java.util.PropertyPermission "java.specification.vendor", "read";
268
 
        permission java.util.PropertyPermission "java.specification.name", "read";
 
310
    permission java.util.PropertyPermission "java.specification.version", "read";
 
311
    permission java.util.PropertyPermission "java.specification.vendor", "read";
 
312
    permission java.util.PropertyPermission "java.specification.name", "read";
269
313
 
270
 
        permission java.util.PropertyPermission "java.vm.specification.version", "read";
271
 
        permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
272
 
        permission java.util.PropertyPermission "java.vm.specification.name", "read";
273
 
        permission java.util.PropertyPermission "java.vm.version", "read";
274
 
        permission java.util.PropertyPermission "java.vm.vendor", "read";
275
 
        permission java.util.PropertyPermission "java.vm.name", "read";
 
314
    permission java.util.PropertyPermission "java.vm.specification.version", "read";
 
315
    permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
 
316
    permission java.util.PropertyPermission "java.vm.specification.name", "read";
 
317
    permission java.util.PropertyPermission "java.vm.version", "read";
 
318
    permission java.util.PropertyPermission "java.vm.vendor", "read";
 
319
    permission java.util.PropertyPermission "java.vm.name", "read";
276
320
 
277
321
    // Required for OpenJMX
278
322
    permission java.lang.RuntimePermission "getAttribute";
279
323
 
280
 
        // Allow read of JAXP compliant XML parser debug
281
 
        permission java.util.PropertyPermission "jaxp.debug", "read";
 
324
    // Allow read of JAXP compliant XML parser debug
 
325
    permission java.util.PropertyPermission "jaxp.debug", "read";
282
326
 
283
 
    // Precompiled JSPs need access to this package.
 
327
    // Precompiled JSPs need access to these packages.
 
328
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.el";
284
329
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime";
285
330
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.jasper.runtime.*";
286
331
    
287
 
};
288
 
 
 
332
    // Precompiled JSPs need access to these system properties.
 
333
    permission java.util.PropertyPermission
 
334
     "org.apache.jasper.runtime.BodyContentImpl.LIMIT_BUFFER", "read";
 
335
    permission java.util.PropertyPermission "org.apache.el.parser.COERCE_TO_ZERO", "read";
 
336
};
 
337
 
 
338
 
 
339
// The Manager application needs access to the following packages to support the
 
340
// session display functionality
 
341
grant codeBase "file:${catalina.base}/webapps/manager/-" {
 
342
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina";
 
343
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager";
 
344
    permission java.lang.RuntimePermission "accessClassInPackage.org.apache.catalina.manager.util";
 
345
};
289
346
 
290
347
// You can assign additional permissions to particular web applications by
291
348
// adding additional "grant" entries here, based on the code base for that