java - 尝试删除文件时出现 AccessControlException

标签 java security servlets filesystems io

我们有一个 Java Web 服务应用程序,它使用 log4j 进行日志记录。当 log4j 尝试删除其滚动日志文件时抛出异常

Exception:java.security.AccessControlException: access denied
(java.io.FilePermission /var/opt/SUNWappserver/domains/domain1/
applications/j2ee-modules/ourwebservice/WEB-INF/logs/IMWrapper.log.10 delete)

当我们在目录中执行 ls 时,服务帐户确实有权读取和写入文件和目录。

从最初的谷歌搜索看来,我们可能必须更改 security.policy 文件以允许服务删除文件。有什么建议吗?

最佳答案

作为快速修复,您可以使用包含以下内容的策略文件启动应用程序:

grant {
    permission java.security.AllPermission;
};

使用命令行选项:

-Djava.security.policy=文件:<您的策略文件>

参见this link有关如何配置策略文件以获得所需访问权限的详细信息。

编辑:很抱歉,但我不知道如何配置您的网络应用程序如何使用该策略文件,但至少该链接应该提示您获得所需的权限...

关于java - 尝试删除文件时出现 AccessControlException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/277100/

相关文章:

java - 追踪dispatcher.forward的路径

java - 如何清理 Runtime.exec() 中使用的用户输入?

security - AWS 上的 100% 无服务器架构是否需要 VPC?

security - 了解metasploits meterpreter有效负载

java - 在 servlet 中使用 request.getSession() 将数据获取到 servlet 的最佳方式?

java - 使用 JSoup 从 Google 搜索结果的所有页面检索所有链接

从sql数据库列获取最大值时java列未找到异常

java - 获取 HttpServletRequest 状态以避免 IllegalStateException

java - 主题 网络环境中的本地问题

java - 在 CQ5 中搜索多个标签