Granting File Permissions

Many web applications make use of the filesystem to save and load data. If you run Tomcat with the SecurityManager enabled, it will not allow your web applications to read and write their own data files. To make these web applications work under the SecurityManager, you must grant your web application the proper permissions.

Example 6-1 shows a simple HttpServlet that attempts to create a text file on the filesystem and displays a message indicating if the write was successful.

Example 6-1. Writing a file with a servlet

package com.oreilly.tomcat.servlets; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.PrintWriter; import javax.servlet.GenericServlet; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; /** * This servlet attempts to write a file into the webapp's document * root directory. */ public class WriteFileServlet extends GenericServlet { public void service(ServletRequest request, ServletResponse response) throws IOException, ServletException { // Try to open a file and write to it. String catalinaHome = "/opt/tomcat"; File testFile = new File(catalinaHome + "/webapps/ROOT", "test.txt"); FileOutputStream fileOutputStream = new FileOutputStream(testFile); fileOutputStream.write(new String("testing...\n").getBytes( )); fileOutputStream.close( ); // If we get down this far, the file was created successfully. PrintWriter out = response.getWriter( ...

Get Tomcat: The Definitive Guide, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.