Java JFileChooser在JApplet中的使用
Java JFileChooser在JApplet中的使用,java,applet,jfilechooser,Java,Applet,Jfilechooser,JApplet是否可以使用JFileChooser以便用户可以选择硬盘上的文件?或者这会违反Java小程序的安全性?(我假设正在使用默认的安全设置。我不想要求我的用户授予我额外的权限。)在这种情况下(使用默认设置),您是正确的,默认安全管理器不允许访问本地文件。表示在允许使用JFileChooser之前,您需要对小程序进行数字签名。您可能需要使用PrivilegedAction从用户的硬盘读取任何内容。正如@mmyers所说,您还必须对小程序进行签名 因此,您的答案是肯定的,我以前做过,所以我知
JApplet
是否可以使用JFileChooser
以便用户可以选择硬盘上的文件?或者这会违反Java小程序的安全性?(我假设正在使用默认的安全设置。我不想要求我的用户授予我额外的权限。)在这种情况下(使用默认设置),您是正确的,默认安全管理器不允许访问本地文件。表示在允许使用JFileChooser
之前,您需要对小程序进行数字签名。您可能需要使用PrivilegedAction从用户的硬盘读取任何内容。正如@mmyers所说,您还必须对小程序进行签名
因此,您的答案是肯定的,我以前做过,所以我知道可以这样做。如前所述,您需要对小程序进行签名,当用户看到小程序时,会出现“模糊的安全警告”。当用户接受运行此小程序时,该小程序将被授予完全访问权限,其功能与普通应用程序类似,具有明显的安全隐患。对于正在开发的web应用程序,我也处于同样的困境中,目前还不确定它是否会被部署 如果您正在处理较小的文件,您也可以使用webbrowser中的内置文件浏览器,并从服务器中恢复文件内容 此外,您可以针对已签名的小程序采取以下安全措施:
- 正在验证小程序代码的来源
URL appletUrl = MyApplet.class.getProtectionDomain().getCodeSource().getLocation(); if(appletUrl.toString().equalsIgnoreCase(safeAppletUrl) == false) return false;
- 正在验证运行小程序的基础URL
URL documentUrl = this.getDocumentBase(); if(documentUrl.toString().equalsIgnoreCase(safeDocumentUrl) == false) return false;