我在Security Manager
中使用tomcat
功能,并且能够在管理权限时使用Catalina.policy
文件。
尽管我得到了我的网络应用程序的错误日志
以下是政策文件中提供的权限
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
我错过了什么吗?请指导我。 感谢名单
答案 0 :(得分:1)
如果您只是在进行本地测试,并且不需要安全性,那么还有另一种方法,当您在Eclipse中双击Tomcat以获得Tomcat配置时,取消选中“启用安全性”
答案 1 :(得分:0)
即使这个mkyong link解决了我的问题,但我认为它是一种黑客攻击(我也可能错了)
是否可以授予tomcat-juli.jar
所有权限?
我后来发现这个answer也指向了上面相同的链接。
<强>更新强>
错误跟踪是由于在logging.properties
文件中注册的日志记录处理程序过多而导致堆栈跟踪消失。
不过,不知道为什么这个
permission java.security.AllPermission;
按照链接工作。