JApplet
可以使用JFileChooser
,以便用户可以选择硬盘上的文件吗?或者这会违反Java applet安全性吗? (我假设正在使用默认安全设置。我不想让我的用户授予我额外的权限。)
答案 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。
所以你的答案是肯定的,我之前已经这样做了所以我知道可以做到。