Tomcat AccessControlException:访问被拒绝(" java.io.FilePermission"" logs"" read")

时间:2017-04-11 16:07:24

标签: tomcat securitymanager

我在Security Manager中使用tomcat功能,并且能够在管理权限时使用Catalina.policy文件。 尽管我得到了我的网络应用程序的错误日志

enter image description here

以下是政策文件中提供的权限

permission java.io.FilePermission "${catalina.base}${file.separator}logs", "read, write";
permission java.io.FilePermission "${catalina.base}${file.separator}logs${file.separator}*", "read, write"; 
permission java.util.PropertyPermission "java.util.logging.config.class", "read";

默认情况下,政策文件中存在 CATALINA CODE PERMISSIONS 部分未修改。我创建了一个单独的codeBase部分,我保留了我的webapps并添加了以上权限。

这些是我在logging.properties文件

中启用的日志记录处理程序
handlers = 1catalina.org.apache.juli.AsyncFileHandler, 2localhost.org.apache.juli.AsyncFileHandler, 3manager.org.apache.juli.AsyncFileHandler, 4host-manager.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

.handlers = 1catalina.org.apache.juli.AsyncFileHandler, java.util.logging.ConsoleHandler

2localhost.org.apache.juli.AsyncFileHandler.level = INFO
2localhost.org.apache.juli.AsyncFileHandler.directory = ${catalina.base}/logs
2localhost.org.apache.juli.AsyncFileHandler.prefix = localhost.

org.apache.catalina.core.ContainerBase.[Catalina].[localhost].level = INFO
org.apache.catalina.core.ContainerBase.[Catalina].[localhost].handlers = 2localhost.org.apache.juli.AsyncFileHandler

org.apache.jasper.compiler.TldLocationsCache.level = WARNING

org.apache.jasper.level = WARNING

我错过了什么吗?请指导我。 感谢名单

2 个答案:

答案 0 :(得分:1)

如果您只是在进行本地测试,并且不需要安全性,那么还有另一种方法,当您在Eclipse中双击Tomcat以获得Tomcat配置时,取消选中“启用安全性”

答案 1 :(得分:0)

即使这个mkyong link解决了我的问题,但我认为它是一种黑客攻击(我也可能错了) 是否可以授予tomcat-juli.jar所有权限? 我后来发现这个answer也指向了上面相同的链接。

<强>更新 错误跟踪是由于在logging.properties文件中注册的日志记录处理程序过多而导致堆栈跟踪消失。 不过,不知道为什么这个

permission java.security.AllPermission;

按照链接工作。