2013-05-08 67 views
5

自從最新的Java更新以來,即使我們使用的兩個jar文件都已簽名,我的兩個小程序仍會向用戶顯示警告彈出窗口。我已經驗證他們使用jarsigner -verify MyJarFile.jar命令進行了簽名。以下是我們所看到的彈出消息...Java Applet - 「阻止潛在的不安全組件被運行?」消息

enter image description here

我的小程序通過JNI調用C++ DLL。 C++ dll調用C#netmodule。

有誰知道我能做些什麼來讓這個彈出消失?它說應用程序包含簽名和未簽名的代碼,但我正在我的jar文件中籤署每個java文件(只有1個)。我需要做更高級別的簽名嗎?

編輯:這是發生在最新的Java更新。請參閱下面的報價從this page

,作者和使用任何Java小程序或Java Web Start技術部署的應用程序供應商 - 分佈於通過網絡瀏覽器或網絡運行到最終用戶的應用程序 - 必須使用受信任的證書爲最佳的用戶體驗上籤上自己的代碼。具體來說,客戶端瀏覽器內執行的所有Java代碼都會提示用戶。呈現的對話消息的類型取決於風險因素,例如代碼簽名或未簽名,代碼請求提升權限,JRE高於或低於安全基線等。低風險情景提供非常小的對話框幷包含複選框以不顯示類似的對話框未來由同一供應商提供。考慮到風險增加,更高風險的情況下,如運行未簽名的罐子,將需要更多的用戶交互。

+1

這個問題和我的不一樣。如果我根本沒有簽署我的jar文件,我會在鏈接中看到錯誤消息。這是最新Java更新中添加的一項新增安全功能。 – gwin003 2013-05-08 13:26:19

回答

7

我想出了答案。我在eclipse項目中沒有清單文件,因此我創建了一個名爲manifest.mf的文件,並將以下代碼放入其中。

Manifest-Version: 1.0 
Trusted-Library: true 

在eclipse中構建jar文件時,在第3頁上,它會要求您輸入清單文件。我相信它默認這個選項爲'爲我創建一個清單文件',但這個清單文件只包含上面的第一行。選擇「使用工作區中的現有清單」選項,然後選擇剛剛創建的manifest.mf文件。然後像平常一樣簽署你的罐子。

這是解決問題的Trusted-Library屬性。查看this page瞭解關於此屬性和其他特權代碼jar文件的更多信息。

+0

就像在IE9上的魅力一樣工作。 – 2013-08-27 01:26:10

相關問題