Внедренная проблема JetPack WebAppContext FilePermission - PullRequest
1 голос
/ 22 декабря 2011

Мне нужно ограничить права доступа к файлам "подключаемых модулей" WAR, содержащих сервлеты во встроенной Jetty.Чтобы проверить права доступа к файлу, я создал WAR-файл, содержащий этот сервлет, который пытается записать в файл вне папки webapps:

public class Test extends HttpServlet
{
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
    {
        try
        {
            FileWriter outFile = new FileWriter("C:\\temp\\test.txt");
            PrintWriter out = new PrintWriter(outFile);
            out.println("This is line 1");
            out.println("This is line 2");
            out.close();
            response.getWriter().print("File created");
        }
        catch(Exception e)
        {
            response.getWriter().print(e.getMessage());
            e.printStackTrace();
        }

    }
}

WAR-файл, содержащий этот сервлет, затем добавляется во встроенные обработчики Jetty с помощьюнастроенное разрешение для файла, например:

jetty = new Server(serverPort);
handlers = new HandlerList();

...
(adding standard Web Apps here)
...

WebAppContext plugin = new WebAppContext();

//Create file permissions policy
PermissionCollection pcol = new Permissions();
FilePermission fp = new FilePermission(path_to_war, "read");
pcol.add(fp);
plugin.setPermissions(pcol);

plugin.setContextPath("/plugins/plugin_name");
plugin.setWar(path_to_war);
plugin.setCopyWebDir(false);
plugin.setCopyWebInf(false);
plugin.setExtractWAR(false);

handlers.addHandler(plugin);
jetty.setHandler(handlers);
jetty.start();

Однако сервлет все еще может создавать и записывать в тестовый выходной файл - я не уверен, почему ... Я искал пример кода, реализующего специфическийразрешения для отдельных веб-приложений, но нашел очень мало информации по этой теме.Я думаю, что WebAppContext «наследует» политику разрешений файлов от приложения для встраивания.

Может кто-нибудь указать мне правильное направление?Спасибо!

...