gpt4 book ai didi

java - 从 Java 中的 FileDescriptor 获取路径

转载 作者:行者123 更新时间:2023-12-04 13:00:19 25 4
gpt4 key购买 nike

关于我的问题的一些快速背景:

我正在编写一个将域类型强制规范转换为 Java 安全管理器代码的编译器。简而言之,DTE 定义“类型”(对象),为这些类型分配路径;然后定义“域”(主题),并定义域对各种类型的权限(rwxdc)。我需要在 JSM 中尽可能地模拟这种行为。

目前我正在研究写权限。我已经成功覆盖了 JSM 的 checkWrite(String filename) 方法。列表中的下一个是 checkWrite(FileDescriptor filedescriptor),事实证明这个更棘手。由于 DTE 的定义方式,我需要路径信息来确定是否允许写入操作。

  • 是否可以从 FileDescriptor 中提取路径数据?我猜不是 - 我已经检查了文档和各种教程,但我没有发现任何迹象表明我可以通过任何方式获得这些信息(但是,我很高兴看到错误;那会让我的工作更轻松)。
  • 如果上述答案是否定的,有人可以提出可行的解决方法吗?例如,是否有某种方法可以编写 native 代码来执行我想要的操作并将其绑定(bind)到我的自定义 JSM 类中?我可以做这样的“高级”事情,但我需要一些如何开始的想法。
  • 或者我唯一的选择基本上是拒绝所有使用 FileDescriptor 的写权限?我非常想避免这种情况,因为这是一个糟糕的解决方案,但如果这是我需要知道的现实。

  • 非常感谢你花时间陪伴。

    最佳答案

    简短的回答是否定的,因为文件独立于用于访问该文件的路径(至少在任何重要的操作系统上)。

    一种可能的解决方法是使用方面框架捕获打开文件的调用,并将引用的文件描述符放入 WeakHashMap<FileDescriptor,File> .然后,您只需在需要验证写入时查看此映射即可。

    关于java - 从 Java 中的 FileDescriptor 获取路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12285469/

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