2008-10-24 71 views
5

JApplet可以使用JFileChooser,以便用戶可以選擇他的硬盤驅動器上的文件嗎?或者這會違反Java applet安全性? (我假設正在使用默認安全設置,我不想問我的用戶給我額外的權限)。JApplet中使用JFileChooser

回答

3

This thread表示您需要在允許JFileChooser之前對您的小程序進行數字簽名。

+0

鏈接被打破。也沒有回寫或谷歌緩存都有副本 如果我找到任何東西,我會回到這裏 – 2011-08-05 02:24:52

1

在這種情況下(使用默認設置),您是正確的,默認安全管理器不允許訪問本地文件。

1

您可能不得不使用PrivilegedAction從用戶的硬盤驅動器中讀取任何內容。就像@ mmyers說的那樣,你也必須簽署你的applet。

所以你的回答是肯定的,我之前做過這件事,所以我知道它可以做到。

2

如上所述,您需要簽署您的小程序,當用戶出現小程序時會導致「模糊的安全警告」。當用戶接受運行這個小程序時,小程序被賦予完全的訪問權限,並且像普通的應用程序一樣具有安全隱患。對於我正在使用的Web應用程序,我處於同樣的困境,並且還不確定它是否會被部署。

如果您使用較小的文件,您可以選擇使用webbrowser中內置的filebrowser並從服務器反彈文件內容。

此外,一些安全措施,可以使關於簽名Applet是:

  • 驗證applet代碼的來源。

    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;