applet无法从网络驱动器访问文件

时间:2010-02-15 20:53:25

标签: java security applet

使用我签名的applet的用户之一无法从他的netwrok驱动器上传文件(基本上无法访问驱动器),并且使用我签名的applet的其他几个用户无法访问和上传文件来自网络驱动器。我能知道背后的原因是什么吗?

注意:无法从网络驱动器访问该文件的用户,他可以手动从网络驱动器访问该文件,并能够复制到本地驱动器。

2 个答案:

答案 0 :(得分:1)

确保将代码包装在特权块中,或者确保您的签名无关紧要。

你可以使用这样的东西来读取文件。

      File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
      public Object run() 
      {
         File inputFile1 = new File("C:\\Program Files\\MyFolder\\MyFile.jpg");
         return inputFile1;
      }
      });

  FileReader in = new FileReader(inputFile);

如果你想使用变量而不是静态文本作为文件位置,你必须使用这样的最终变量。

final String myfilename = <path or string var of filename>
File inputFile = (File) AccessController.doPrivileged(new PrivilegedAction() {
      public Object run() 
      {
         File inputFile1 = new File(myfilename);
      }
    }};
FileReader in = new FileReader(inputFile);

答案 1 :(得分:0)

签署applet并不一定会绕过所有安全限制,如果这种情况下犯罪分子会签署他们的漏洞。在给予applet访问权限之前,用户仍然必须信任该证书。我会确保applet可以读/写local drive,因为我怀疑这也是禁止的。