2013-11-25 61 views
4

好的,所以我們有一個Java applet,它可以將文件上傳到服務器。一些have already noticed,該用戶需要爲我們的網站打開'不安全的'java模式才能使applet正常工作。確定Java的「safeness」的Safari 7,Mac OS X:通過javascript確定Java是否處於「不安全」模式

一種方法是嘗試加載一個「假」的小程序,看看它是如何工作。這將需要一些時間來加載JRE,而不是我想要的。

的問題是:我們可以判斷,如果Java是在不安全模式下使用JavaScript僅在運行?我真的希望蘋果增加了這種可能性。

事實上,一些指向此行爲描述的鏈接將不勝感激。

回答

1

我相信你誤解了我原來的職位重新Java小程序和Safari瀏覽器Safari瀏覽器7 7實際上並不「塊」加載的小程序。 ,如果它是野生6.唯一的問題下加載的小程序將被加載完全相同的方式是,Safari瀏覽器7(而不是圖6和下面)實際上限制從訪問文件系統小應用程序,如果該小程序在運行在默認設置「安全模式」下。

所以,如果您的小程序並不需要訪問本地文件(和可能其他一些I/O,我沒有其他的選擇實驗雖然) - 它不會發現任何錯誤。

然而,只要你的小程序試圖訪問本地文件系統,它會得到FileNotFoundException異常。

所以對我來說,檢查applet是否處於「安全模式」的最好方法是簡單地嘗試訪問一個你知道存在並可供用戶訪問的文件夾(我想你可以開始試驗「。」要麼 」..」)。如果不是訪問該文件夾,您將擁有FileNotFoundException,您可以假設(並向您的用戶建議)該小程序正在「安全模式」下運行。

另外,如果特定的小程序處於「安全模式」或詢問Safari 7是否以「安全模式」或「不安全模式」運行所有小程序,我絕對確定無法通過js進行檢查。

希望這會有所幫助。

+0

是的,我明白了。事情是 - 我們的小程序確實需要訪問文件系統。所需的行爲是:用戶打開頁面,如果applet未被授權訪問用戶的文件,則會顯示一條消息。壞消息是 - JRE需要很長時間才能啓動,加載小程序並檢查fs訪問。所以我正在尋找一種方式來做到這一點在一個有點hacky-workarounded JS的方式。 – Dethariel