在带有安全管理器的 tomcat 中使用 log4j

Posted

技术标签:

【中文标题】在带有安全管理器的 tomcat 中使用 log4j【英文标题】:Use log4j in a tomcat with security manager 【发布时间】:2013-08-09 13:33:32 【问题描述】:

问题是:当您将 log4j 用于 tomcat 并且正在运行时,是否有必要为 log4j.properties 授予 tomcat-juli.jar 读取权限安全经理? http://tomcat.apache.org/tomcat-7.0-doc/logging.html#Using_Log4j

我的 $catalina.base/conf/catalina.policy

grant codeBase "file:$catalina.base/bin/tomcat-juli.jar" 
        .../...
        permission java.io.FilePermission
         "$catalina.base$file.separatorlib$file.separatorlog4j.properties", "read";
        .../...

提前致谢,

路易斯

【问题讨论】:

你试过没有读权限吗?看起来你可以通过尝试比在 SO 上发帖更快地回答这个问题...... 你好克里斯,我当然试过没有权限。我的问题的目的是找出我的解决方案是否正确,或者它是否只是一种解决方法....顺便说一句,如果没有权限,它就无法工作。无论如何感谢您的评论! 【参考方案1】:

Tomcat 默认带有一个 conf/catalina.policy 文件,该文件涵盖了在 Java 安全管理器下使用的默认配置。如果您想使用 log4j,那么是的,您必须允许 tomcat-juli.jar 读取 conf/log4j.properties

【讨论】:

以上是关于在带有安全管理器的 tomcat 中使用 log4j的主要内容,如果未能解决你的问题,请参考以下文章

使用启用了安全管理器的 Tomcat 时,在类路径中找不到属性文件

记一次对Tomcat网页靶机提权实录

用log4j管理tomcat的catalina日志

在没有 Tomcat 管理器的情况下从 jenkins 自动部署战争文件

Tomcat中Logger组件

Tomcat中Logger组件