JFileChooser在JApplet中使用

JApplet使用JFileChooser以便用户可以选择硬盘上的文件吗? 或者这会违反Java applet安全性吗? (我假设正在使用默认安全设置。我不想让我的用户授予我额外的权限。)

此线程表示您需要在允许JFileChooser之前对您的applet进行数字签名。

如上所述,您需要对applet进行签名,这会在向用户显示applet时导致“模糊的安全警告”。 当用户接受运行此applet时,applet将获得完全访问权限,其function类似于普通应用程序,具有明显的安全隐患。 对于我正在研究的Web应用程序,我处于同样的两难境地,目前还不确定它是否会被部署。

您也可以使用webbrowser中的内置文件浏览器,如果您使用的是较小的文件,则可以从服务器中恢复文件内容。

此外,您可以对签名的小程序进行一些安全措施:

  • validationapplet代码的来源。

     URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation(); if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false) return false; 
  • validation运行applet的基本URL。

     URL documentUrl = this.getDocumentBase(); if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false) return false; 

在这种情况下(使用默认设置),您是正确的,默认安全管理器不允许访问本地文件。

您可能必须使用PrivilegedAction从用户的硬盘驱动器中读取任何内容。 正如@mmyers所说,你也必须签署你的applet。

所以你的答案是肯定的,我之前已经这样做了,所以我知道可以做到。