JFileChooser在JApplet中使用

时间:2008-10-24 21:05:05

标签: java applet jfilechooser

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

4 个答案:

答案 0 :(得分:3)

This thread表示您需要在允许JFileChooser之前对您的小程序进行数字签名。

答案 1 :(得分:2)

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

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

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

  • 验证applet代码的来源。

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

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

答案 2 :(得分:1)

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

答案 3 :(得分:1)

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

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