問題

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フォルダにあります

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