修改catalina.policy

时间:2016-02-25 20:00:07

标签: java eclipse security tomcat

有谁知道如何修改catalina.policy以消除此AccessControlException:

2016年2月25日下午2:31:14 org.apache.tomee.catalina.ServerListener install

**SEVERE: TomEE Listener can't start OpenEJB**
java.security.AccessControlException: access denied (**"java.util.PropertyPermission" "tomee.skip-tomcat-log" "read"**)
    at 

java.security.AccessControlContext.checkPermission(AccessControlContext.java:472)         在java.security.AccessController.checkPermission(AccessController.java:884)         在java.lang.SecurityManager.checkPermission(SecurityManager.java:549)         在java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1294)         在java.lang.System.getProperty(System.java:717)         at java.lang.Boolean.getBoolean(Boolean.java:254)          at org.apache.tomee.TomEELogConfigurer.configureLogs(TomEELogConfigurer.java:30)         在org.apache.tomee.catalina.ServerListener.install(ServerListener.java:170)         在org.apache.tomee.catalina.ServerListener.lifecycleEvent(ServerListener.java:55)         在org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:117)         在org.apache.catalina.util.LifecycleBase.fireLifecycleEvent(LifecycleBase.java:90)         在org.apache.catalina.util.LifecycleBase.setStateInternal(LifecycleBase.java:402)         在org.apache.catalina.util.LifecycleBase.init(LifecycleBase.java:110)         在org.apache.catalina.startup.Catalina.load(Catalina.java:638)         在org.apache.catalina.startup.Catalina.load(Catalina.java:663)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         在java.lang.reflect.Method.invoke(Method.java:497)         在org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:280)         在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:454)

我所做的只是单击Eclipse中的Enable Security,然后重新启动服务器。 Tomcat甚至不必加载Web应用程序以防错误。 Tomcat是从Eclipse中启动的,具有以下选项: 的 -Dwtp.configured.security =真

记录: 服务器:Apache Tomcat(TomEE)/7.0.62(1.7.2) Eclipse:Eclipse Java EE IDE版本:Mars.1发行版(4.5.1) Java:jdk 1.8.0_73

Enable Security checkbox checked in Eclipse on Server Overview page

让我开心......

1 个答案:

答案 0 :(得分:0)

我有同样的问题,我认为,我发现有两种方法作为可能的解决方案,只有第一种尝试:

  1. 特别是出于开发目的,在catalina.policy中启用所有内容非常有用,所以将下面的代码放到文件的末尾,然后错误就消失了:
  2. grant { permission java.security.AllPermission; };

    1. 我查看了可以找到给定权限的源代码,发现有以下检查给定属性:
    2. if (!Boolean.getBoolean("tomee.skip-tomcat-log")) { // do some log initialisation ... }

      因此,如果您为Tomcat将环境属性“tomee.skip-tomcat-log”设置为“true”,则可以读取该属性并且不应该进行初始化,因此可能无法抛出异常... < / p>