【问题标题】:Tomcat startup with security manager - CentOS带有安全管理器的 Tomcat 启动 - CentOS
【发布时间】:2016-01-27 05:54:27
【问题描述】:

我以前见过this topic,并且给出的解决方案有效。

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

grant {
permission java.security.AllPermission;
};

所以,我的问题是:有一些方法可以确定正在请求的文件或资源,但在我取消此授权时被拒绝?

以下是可能有帮助的日志,当给定的 Grant 被删除时会出现:

java.security.AccessControlException:访问被拒绝(java.security.SecurityPermission getProperty.package.definition) 在 java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 在 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) 在 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) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 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)

提前谢谢你!

【问题讨论】:

    标签: java security tomcat centos


    【解决方案1】:

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

    “export CATALINA_OPTS=-Djava.security.debug=all”选项在启动 Catalina 时被调用,打印出 Tomcat 执行的每一次访问尝试,以及该尝试的结果。

    由于系统加载了一堆文件,并且这种记录方法会生成非常大的文件,我宁愿不记录它,并手动启动我的虚拟机,在我的屏幕上打印输出。

    我像这样在命令行中运行我的 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
    

    【讨论】:

      猜你喜欢
      • 2014-09-08
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 2010-09-15
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多