2015-10-27 45 views
0

我見過this topic之前,並且解決方案給出了工作。Tomcat啓動與安全經理 - CentOS

但是,它不適合我的需要,因爲它授予每個目錄的讀訪問,通過設置這樣的catalina.policy:

grant { 
permission java.security.AllPermission; 
}; 

所以,我的問題是:有一些方法來確定哪些文件或資源正在被請求,但在我接受這筆贈款時被拒絕?

下面是可能有用的日誌,並在給格蘭特被刪除出現:

java.security.AccessControlException:訪問是java拒絕(java.security.SecurityPermission getProperty.package.definition) 。 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.security。 Security.getProperty(Security.java:725) at org.apache.catalina.security.SecurityConfig.se tSecurityProperty(SecurityConfig.java:117) at org.apache.catalina.security.SecurityConfig.setPackageDefinition(SecurityConfig.java:106) at org.apache.catalina.startup.Embedded.setSecurityProtection(Embedded.java:990) at org.apache.catalina.startup.Embedded。(Embedded.java:130) at org.apache.catalina.startup.Embedded。(Embedded.java:115) at org.apache.catalina.startup.Catalina。(Catalina的.java:58) 在sun.reflect.NativeConstructorAccessorImpl.newInstance0(本機方法) 在sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.n ewInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.catalina.startup。 Bootstrap.init(Bootstrap.java:225) 在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:410)

預先感謝您!

回答

0

我發現this,這是Tomcat的文檔的一部分,它允許我調試安全管理器的阻止結果。

「export CATALINA_OPTS = -Djava.security.debug = all」選項在啓動Catalina時調用時,打印出Tomcat執行的每一次訪問嘗試,以及此嘗試的結果。

由於系統加載了一堆文件,並且此日誌方法會生成非常大的文件,所以我寧願不記錄它,並手動啓動我的VM,將輸出結果打印在屏幕上。

我跑我的JVM在這樣的命令行:

/usr/local/java/jdk6/bin/java -server 
-Duser.timezone=America/Sao_Paulo -XX:MaxPermSize=128m -Xms30m -Xmx1024m 
-Djava.endorsed.dirs=/var/tomcat/7.0/endorsed 
-classpath :/var/tomcat/7.0/bin/bootstrap.jar 
-Djava.security.manager 
-Djava.security.policy==/var/tomcat/7.0/conf/catalina.policy 
-Dcatalina.base=/var/tomcat/7.0 -Dcatalina.home=/var/tomcat/7.0 
-Djava.security.debug=all 
-Djava.io.tmpdir=tmpdir org.apache.catalina.startup.Bootstrap 
-config dir/to/xml.conf start