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のポリシーファイルによって引き起こされますが、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"; };