gpt4 book ai didi

java 目录权限与 AccessController.checkPermission

转载 作者:行者123 更新时间:2023-12-02 08:26:13 24 4
gpt4 key购买 nike

我尝试通过 checkPermission() 方法获取目录权限,如代码中所示。

private static boolean dirPermissions(String dir, String perm) {
try {
AccessController.checkPermission(new FilePermission(dir, perm));
return true;
} catch (AccessControlException e) {
return false;
}
}

大多数相关 File 类方法(例如 canRead()、canWrite() 等)的 java (<=6) 文档表明它们对文件有用,但对目录没有用(我在这里错了吗?) .

我没有在服务器上运行代码,或者运行多个线程并且需要在它们之间保存acc,或者做任何棘手的事情,它尽可能简单 - 一个新的eclipse安装与本地运行的jvm和代码,并且我正在访问本地目录。

但是,对于显然jvm具有读/写权限的文件夹,checkPermission总是抛出异常(即访问被拒绝),因为我可以设法创建文件夹并写入文件等。

大概它与本地 java.policy 无关,因为我成功写入文件,所以我拥有必要的安全权限。有什么想法...?

最佳答案

首先,您可能应该使用SecurityManager

FilePermission 可以很好地处理目录。您可能想要包含下面包含的所有文件和目录。在末尾使用 /- 即可。对于非递归包含的文件和目录,请使用 /*

如果当前访问控制上下文 (acc) 的任何框架(或更确切地说是其 ProtectionDomain)不具有所需的权限,checkPermission 将引发异常。

FilePermission 与操作系统权限无关。

关于java 目录权限与 AccessController.checkPermission,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4483303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com