当前位置: 首页 > 面试题库 >

具有AccessController.checkPermission的Java目录权限

邵展
2023-03-14
问题内容

我试图通过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,或者做任何棘手的事情,这很简单-
使用本地运行的jvm和代码重新安装eclipse,并且可以访问本地目录。

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

大概与本地java.policy无关,因为即时消息成功写入文件,因此我具有必要的安全权限。有任何想法吗…?


问题答案:

首先,您可能应该使用SecurityManager

FilePermission应对目录很好。您可能希望包括下面包含的所有文件和目录。最后使用/-。使用/*非递归包含的文件和目录。

checkPermission如果ProtectionDomain当前访问控制上下文(acc)的任何帧(或其框架)没有所需的权限,将抛出异常。

FilePermission 与操作系统权限无关。



 类似资料:
  • 问题内容: 我正在尝试通过以下命令使用PHP在服务器上创建目录: 但是它不提供完全权限,仅提供以下权限: 问题答案: 该模式是由当前的修改,这是在这种情况下。 工作方式是减法。您获得的初始许可权,然后减去以获得 实际 许可权: 如果您不希望这种情况发生,则需要将您的临时设置为零,以使其无效。您可以使用以下代码段执行此操作: 第一行将更改为零,同时将前一个存储到中。第二行使目录使用所需的权限和(现在

  • 当我使用JAVA API将数据放入hdfs时,我必须为hdfs目标目录提供许可。我尝试了以下代码: 我有以下错误

  • 我在内容数据库中有一个目录,其中包含大约200个XML文档,我想为该目录下的所有文档添加一个附加权限。 我尝试使用xdmp:document add permissions作为xdmp:document add permissions(“/dir/”,(xdmp:permission(“ml reader”,“read”,“object”))),但这似乎不起作用,并给出以下错误消息。 XDMP-D

  • 创建目录权限 如果你想创建一个目录并授予777权限,你需要怎么做?查看Go的API文档我们可以这样写。 源文件为mkdir.go。 package main import ( "fmt" "os" ) func main() { err := os.MkdirAll("/tmp/gotest/", 0777) if err != nil { panic(er

  • 问题内容: 我有一个.zip(Meow.zip),它有多个文件和文件夹,像这样 Meow.zip File.txt 程式 夹 Resource.xml 另一个文件夹 其他的东西 MoreResource.xml 我到处都看过,但找不到任何有效的方法。提前致谢! 问题答案: 这是一个从zip文件解压缩文件并重新创建目录树的类。 来源:http : //www.avajava.com/tutorial

  • 现在你通过修改 Vagrant 配置文件,设置了主机与虚拟机之间的同步目录(synced_folder),这个目录在虚拟机上的权限相当重要,它直接会影响你在这个目录下存储的网站应用是否有权限能把上传的文件存储在这个目录下面。 理解 Linux 系统的文件与目录的权限相当重要。一般来说,如果一个用户要写入内容到某个目录下面,比如在这个目录下创建新的文件,修改文件,删除文件,创建目录,这些都算写入操作