我们的 Java 策略文件过去只是:
grant {
permission java.security.AllPermission;
};
我正在努力使我们的应用程序更安全,而不仅仅是将一切授予所有人。我让它运行良好,除了我在授予文件权限时遇到问题。
我目前得到的错误是:
java.security.AccessControlException: access denied (java.io.FilePermission \\server.log write)
我尝试了很多东西的组合,例如:
permission java.io.FilePermission "\\\\server.log", "write";
permission java.io.FilePermission "C:\\Temp\\logs\\server.log", "write";
permission java.io.FilePermission "\\server.log", "write";
permission java.io.FilePermission "${TEMP}${/}-", "write";
permission java.io.FilePermission "*", "read,write";
我唯一能让它工作的是使用:
grant {
permission java.security.AllPermission;
};
使用时出现错误“java.io.FileNotFoundException: \server.log(文件名、目录名或卷标语法不正确)”(即使文件确实存在):
permission java.io.FilePermission "<<ALL FILES>>", "write";
只是想知道是否有人有其他想法可以尝试。我真的不想为了获得正确的文件权限而求助于授予所有权限,显然我错过了一些东西。
编辑:
我刚刚意识到这可能是日志文件中的一个线索:
log4j:ERROR setFile(null,false) call failed.
也许我特别需要一些权限?现在在谷歌周围挖掘......