Tomcat启动安全管理器 - CentOS

时间:2015-10-27 17:17:04

标签: java security tomcat centos

之前我见过this topic,并且解决方案有效。

但是,它不符合我的需要,因为它通过设置catalina.policy来授予对每个目录的读访问权:

grant {
permission java.security.AllPermission;
};

所以,我的问题是:有什么方法可以确定申请的文件或资源,但是当我取消这笔资助时会被拒绝?

这是可能有用的日志,并在删除授权时显示:

  

java.security.AccessControlException:拒绝访问(java.security.SecurityPermission getProperty.package.definition)       at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323)       at java.security.AccessController.checkPermission(AccessController.java:546)       在java.lang.SecurityManager.checkPermission(SecurityManager.java:532)       在java.security.Security.getProperty(Security.java:725)       在org.apache.catalina.security.SecurityConfig.setSecurityProperty(SecurityConfig.java:117)       at org.apache.catalina.security.SecurityConfig.setPackageDefinition(SecurityConfig.java:106)       在org.apache.catalina.startup.Embedded.setSecurityProtection(Embedded.java:990)       在org.apache.catalina.startup.Embedded。(Embedded.java:130)       在org.apache.catalina.startup.Embedded。(Embedded.java:115)       在org.apache.catalina.startup.Catalina。(Catalina.java:58)       at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)       at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)       at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)       at java.lang.reflect.Constructor.newInstance(Constructor.java:513)       在java.lang.Class.newInstance0(Class.java:355)       在java.lang.Class.newInstance(Class.java:308)       在org.apache.catalina.startup.Bootstrap.init(Bootstrap.java:225)       在org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:410)

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了this,这是Tomcat的文档的一部分,它允许我调试安全管理器的阻止结果。

"导出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