当前位置: 首页 > 知识库问答 >
问题:

对已签名小程序的Java FileOutputStream访问被拒绝

齐航
2023-03-14

我正在开发一个必须访问访问者文件系统的Java小程序,所以我压缩了我的。将文件分类为。当我打开调用时,带有自签名证书的jar文件。html文件与我的浏览器(文件位于

JAVA安全AccessControlException:访问被拒绝(java.io.FilePermission output.txt write)

我使用的是FileInputStreamFileOutputStreamFileInputStream可以工作,但不能FileOutputStream,为什么?

这是我的代码:

try {
      AccessController.doPrivileged(
          new PrivilegedExceptionAction() {              
              @Override 
              public Object run() throws FileNotFoundException {
                  outFile = new FileOutputStream("output.txt");
                  inFile = new FileInputStream("input.txt");
                  return "test";
              }
          }
      );
} catch (PrivilegedActionException e) {
    throw (FileNotFoundException) e.getException();
}

我已经尝试了很多方法来进行特权操作,FileInputStream总是工作,而FileOutputStream不是。output.txt不是只读文件。


共有1个答案

吕嘉赐
2023-03-14

访问权限是通过策略文件授予的,而appletviewer是通过要用于正在查看的小程序的策略文件启动的。

创建策略文件

策略工具是用于创建策略文件的Java 2平台安全工具。关于控制小程序的Java教程详细介绍了如何使用策略工具。这是运行小程序所需的策略文件。您可以使用策略工具创建它,或将下面的文本复制到ASCII文件中。

grant {
       permission java.util.PropertyPermission 
   "user.home", "read";
       permission java.io.FilePermission 
   "${user.home}/text.txt", "read,write";
     };

这里是小程序权限的完整链接http://java.sun.com/developer/onlineTraining/Programming/BasicJava1/data.html

 类似资料:
  • 问题内容: 我有一个简单的自签名小程序(使用keytool和jarsigner完成): 基本上,它的作用是执行“记事本c:/hello.txt”。 然后,我将小程序嵌入html: 当我访问页面时,JRE启动并询问我是否要启动此applet,以及是否信任它。我按确定。然后记事本开始-应该。没问题 但是,然后我将其添加到HTML页面: 现在,当我按此文本时,calc应该开始-对吗?但这给了我: 这是怎

  • 我设置了以下信息: 创建了AWS S3存储桶并将一些映像上载到特定文件夹 创建了AWS CloudFront web发行版: 来源域名:从列表中选择的S3 bucket 限制存储桶访问:是 来源访问标识:选定的已有标识 授予桶的读取权限:是,更新桶策略 拒绝访问

  • 我为电子签名创建了一个java小程序。当我在ide(intelliJ)上运行时,Applet运行正常,工作完美。但是当我将project部署到。jar文件并试图在浏览器(firefox)上运行时,我发现了一些错误,说。jar是不可信的。然后我做了一些研究,并用jarsigner签署了我的小程序。我遵循了以下步骤: AccessControlException:拒绝访问(“java.io.FileP

  • 我正试图用预签名的URL直接上传一个文件到S3 bucket,但在PUT请求上出现AccessDenied(403 Plibended)错误。 附注。忘了补充。我已经尝试添加和以及并且在本例中上载工作正常,但是如何限制上载的访问?它应该只适用于预签名的URL,对吗?

  • 问题内容: 我有一个Java小程序,用于查询Oracle数据库中的数据。从IDE内部运行时,它可以正常运行。但是,当我将其作为嵌入在网页中的小程序运行时,在类加载器中出现“访问被拒绝”错误,并且我并没有最模糊的想法对我有什么要求: 问题答案: 小程序在具有严格限制的安全规则的环境中运行。您至少需要在小程序上签名。 但是,这里的问题更大,在小程序内执行JDBC是一个非常糟糕的主意。该applet的源

  • 问题内容: 这是我的编辑从第27行到第39行的代码: 我认为我的问题可能与Win7教授有关:(访问被拒绝) 如何解决这个问题,或者我需要做些什么或阅读才能使它起作用? 谢谢你不燃烧。 我只是更改了文件夹选项,使我获得完整的(Access …),现在我只需要弄清楚为什么在运行javac VendingMachine.java时为什么没有得到任何输出,我想是有一个新问题。 问题答案: 您的工作目录为。