JFileChooser在JApplet中的使用

5

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

4个回答

3

这个帖子表明在使用JFileChooser之前,您需要对applet进行数字签名。


那个链接已经失效了。Wayback和Google缓存都没有备份的副本。如果我找到任何东西,我会回来这里的。 - Mark Harviston
请查看此处:http://narencoolgeek.blogspot.com/2007/11/3-easy-steps-to-self-sign-applet-jar.html - Mark Harviston

2
如前所述,您需要对applet进行签名,这将导致用户在查看applet时出现“模糊的安全警告”。当用户同意运行此applet时,该applet将获得完全访问权限并像普通应用程序一样运行,具有明显的安全影响。我正在处理一个Web应用程序的相同困境,并且还不确定是否会部署。
如果您正在处理较小的文件,则可以使用Web浏览器中内置的文件浏览器,并从服务器反弹回文件内容。
此外,有些关于已签名applet的安全措施包括:
  • Validating the origin of the applet code.

    URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation();
    if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false)
       return false;
    
  • Verifying the base URL from which the applet was run.

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

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

1

你可能需要使用PrivilegedAction来读取用户硬盘上的任何内容。正如@mmyers所说,你还需要对你的小程序进行签名。

所以你的答案是肯定的,我以前做过这个,所以我知道它是可行的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接