Tomcat - java.security.AccessControlException:アクセス拒否(logging.properties read)

Tomcat – java.security.AccessControlException:アクセスが拒否されました(logging.properties read)

問題

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のポリシーファイルが原因で発生します。Tomcat5.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を再起動します。

あるいは…

Webアプリのパスへのアクセス許可を明示的に有効にできます。

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";
};