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

小程序必须授予什么权限才能写入临时文件?

严劲
2023-03-14
问题内容

我们正在开发一个applet,并需要它能够读取/写入用户临时文件目录中的文件(例如C:\ Documents and Settings \ USERNAME
\ Local Settings \ Temp)。

小程序已签名,用户在小程序启动时单击“允许”选项,并且Java控制面板启用了“允许用户授予对已签名内容的权限”和“允许用户授予对来自不受信任的权限的内容的权限”。

但是,在启动时,我们会收到一个SecurityException:

java.lang.SecurityException: Unable to create temporary file
at java.io.File.checkAndCreate(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at java.io.File.createTempFile(Unknown Source)
at com.jniwrapper.util.AppletHelper.b(SourceFile:104)
at com.jniwrapper.util.AppletHelper.a(SourceFile:79)
at com.jniwrapper.util.AppletHelper.b(SourceFile:50)
at com.jniwrapper.util.AppletHelper.init(SourceFile:122)
at com.x.Y.init(Y.java:31)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Exception: java.lang.SecurityException: Unable to create temporary file

如果我们编辑java.policy文件以将所有内容授予所有权限,则该applet可以正常工作,但这显然是不安全的。我们必须授予什么最小权限才能允许applet读取/写入/创建用户临时文件目录中的文件?


问题答案:

使用策略文件可以进行测试,但是您不应依赖它来完成代码,尤其是在授予文件许可权时,这很危险。

要与文件进行交互,您需要执行以下操作。

  1. 签署您的jar-像这样的大量教程,您可以做一个自签署的。

  2. 将文件创建代码添加到特权块中,这是一个示例

    File myFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
    

    public Object run()
    {
    return new File(“C:\MyFolder\MyFile”);
    }

    });



 类似资料:
  • 大家好,我想给文件以读模式或写模式打开的权限。ext包含文件扩展名,file_name包含文件名。f_p是一个可验证的输入,其中I是作为“r”或“w”模式的输入。这里我在不同的位置使用相同的文件 但是在这段代码中,我得到了错误,因为找不到符号:方法setReadable(布尔)location:fos2是FileOutputStream类型 <% %>https://jsfiddle.net/wc

  • 我在清单中添加了对外部存储设备的写访问权限,并在我的Android手机中授予了这些权限。如果他们不存在,我甚至会在执行时要求他们。 然而,我总是得到这个例外: Java语言io。FileNotFoundException:/storage/simulated/03b3d97bd-5186-4506-97dc-9994b7ce0761(权限被拒绝) 你知道为什么吗? 在清单文件中:

  • 问题内容: 我正在尝试使用PHP创建文件,但无法正常工作。我假设这是因为它没有写访问权限(以前一直是问题)。我试图通过使文件夹chmod 0777来测试这是否是问题,但是最终使该目录中的每个脚本都返回了500条错误消息,直到我将其改回为止。如何授予PHP对文件系统的写访问权,以便它可以创建文件? 编辑:它托管在使用Apache的Hostgator共享托管上。 编辑2:有人要求输入代码:该代码是GD

  • 问题内容: 我正在尝试使用Python在Windows OS上创建并写入一个临时文件。我已经使用Python模块创建了一个临时文件。 但是当我去写那个临时文件的时候我得到了一个错误。我不可以写临时文件吗?难道我做错了什么?如果要创建并写入临时文件,应该如何在Python中进行操作?为了安全起见,我想在temp目录中创建一个临时文件,而不是在本地(在.exe正在执行的目录中)中创建一个临时文件。 问

  • 我已经创建了自己的android。这样我就可以使用隐藏的API调用“DisplayManager.connectWifiDisplay()”。 当我运行应用程序并调用该方法时,在通过Wifi Direct连接到显示器后, 我得到以下例外: java.lang.SecurityException:连接到wifi显示器所需的权限:用户10105和当前进程都没有android.Permission.CO

  • 问题内容: 我正在尝试写入,但是,直到我致电,实际上才发送任何数据。即使我设置为false,也仍然不会发送。有人知道为什么吗?API文档中没有任何内容对此进行描述。 URLConnection上的Java API文档:http : //download.oracle.com/javase/6/docs/api/java/net/URLConnection.html Java的关于读取和写入URLC