Tomcat AccessControlException:access 拒绝 ("java.io.FilePermission" "logs" "read")
Tomcat AccessControlException:access denied ("java.io.FilePermission" "logs" "read")
我正在使用 tomcat
中的 Security Manager
功能,并且能够利用 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 的部分默认存在于策略文件中,modified.I 没有创建一个单独的 codeBase
部分,我将其保存在其中我的网络应用程序并添加了上述权限。
这些是我在 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
我错过了什么吗?请指导我。
谢谢
虽然这个 mkyong link 解决了我的问题,但我认为这有点 hack(我也可能是错的)
可以授予 tomcat-juli.jar
所有权限吗?
我后来发现这个 answer 也指向上面相同的 link.
更新:
错误跟踪是由于在 logging.properties
文件中注册的日志记录处理程序过多而注销它们导致堆栈跟踪消失。
不过,不知道为什么会这样
permission java.security.AllPermission;
虽然按照 link 进行了工作。
如果你只是做本地测试,不需要安全,还有一种方法,双击[=]时取消勾选"Enable Security" 15=] 在 Eclipse 中获取 Tomcat 配置。
我正在使用 tomcat
中的 Security Manager
功能,并且能够利用 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 的部分默认存在于策略文件中,modified.I 没有创建一个单独的 codeBase
部分,我将其保存在其中我的网络应用程序并添加了上述权限。
这些是我在 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
我错过了什么吗?请指导我。 谢谢
虽然这个 mkyong link 解决了我的问题,但我认为这有点 hack(我也可能是错的)
可以授予 tomcat-juli.jar
所有权限吗?
我后来发现这个 answer 也指向上面相同的 link.
更新:
错误跟踪是由于在 logging.properties
文件中注册的日志记录处理程序过多而注销它们导致堆栈跟踪消失。
不过,不知道为什么会这样
permission java.security.AllPermission;
虽然按照 link 进行了工作。
如果你只是做本地测试,不需要安全,还有一种方法,双击[=]时取消勾选"Enable Security" 15=] 在 Eclipse 中获取 Tomcat 配置。