Tomcat - java.security.AccessControlException: доступ запрещен (чтение logging.properties)

Tomcat - java.security.AccessControlException: доступ запрещен (чтение logging.properties)

проблема

После обновления до Tomcat версии 5.5.25 он начал обнаруживать множество ошибок в политике безопасности:

Caused by: java.security.AccessControlException: access denied
      (java.io.FilePermission /usr/share/tomcat5.5-
            webapps/jsp-examples/WEB-INF/classes/logging.properties read)

Решение

Вышеупомянутая ошибка вызвана файлом политики Tomcat, Tomcat 5.5.25 внес много изменений в файл политики. Чтобы исправить это, вам нужно внести некоторые изменения в файл политики (03catalina.policy)…

Задайтеvi 03catalina.policy, файл обычно находится в папке policy.d

example@example-desktop:/etc/tomcat5.5/policy.d$ vi 03catalina.policy

найдите следующий шаблон:

Файл: 03catalina.policy

grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
        permission java.util.PropertyPermission "java.util.logging.config.class", "read";
        permission java.util.PropertyPermission "java.util.logging.config.file", "read";
        //...omitted for readability
};

ИЗМЕНЕНО, дайте всем разрешение.

Файл: 03catalina.policy

grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
        permission java.security.AllPermission;
};

Готово, перезапустите Tomcat.

С другой стороны ...

Вы можете явно разрешить путь к вашему веб-приложению.

permission java.io.FilePermission "${catalina.base}${file.separator}
   webapps${file.separator}YOUR_PATH_HERE${file.separator}WEB-INF
   ${file.separator}classes${file.separator}logging.properties", "read";

полная команда

Файл: 03catalina.policy

grant codeBase "file:${catalina.home}/bin/tomcat-juli.jar" {
        permission java.util.PropertyPermission "java.util.logging.config.class", "read";
        permission java.util.PropertyPermission "java.util.logging.config.file", "read";
        //...omitted for readability
        permission java.io.FilePermission "${catalina.base}${file.separator}webapps$
        {file.separator}YOUR_PATH_HERE${file.separator}WEB-INF${file.separator}
        classes${file.separator}logging.properties", "read";
};