2013-08-30 101 views
6

我開發了一個小程序,我發現一個奇怪的行爲。證書載入問題

這是爲實現基於安全的應用程序,它構建在GWT,Hibernate和Spring中。

小程序主要是訪問瀏覽器證書並將其用於數據的加密和解密。

它在所有的系統上工作正常,但我不知道一個客戶機我發現一個奇怪的行爲。

當我在Internet Explorer中登錄。小程序加載在以下點停止,然後自動關閉。

錯誤的小程序控制臺說:

基本的:增加了進度聽衆:[email protected]

基礎:要求http://phil.etenders.in/securityApplet.jar 安全Plugin2ClassLoader.addURL父:黑名單撤銷檢查已啓用 安全性:啓用可信庫列表檢查 網絡:找到緩存條目[url:http://phil.etenders.in/securityApplet.jar,version:null] prevalidated = false/0

刪除黑名單撤銷檢查並受信任的庫檢查,但沒有影響。 (他們穿過井),

如果我打開從http://csis.pace.edu/~bergin/Java/applets.htm 任何樣品小程序停止在以下行上的所有三種瀏覽器

basic: Plugin2ClassLoader.isTrustedByPolicy called 
    basic: Plugin2ClassLoader.isTrustedByPolicy returns false 

行爲。

  1. Firefox和Chrome:不加載。
  2. IE:第一次加載刷新時不加載。

讓我知道是否需要更多的細節。 參考源代碼here

+0

爲什麼?你爲什麼不使用SSL? – EJP

+0

@EJP根據我們的客戶要求,我們需要單獨的證書進行數據加密/解密。 'SSL'只提供n/w安全,我們也需要數據安全。 – iMBMT

+0

我可能無法完全幫助調試它,但您可以做的是將不同的方法分離出來,然後將它們分類並運行它們,以找出哪些特定點無法正常工作。通過將所有類組合到另一個主類中,將爲程序提供更好的運行時。 – fftk4323

回答

1

我升級了最新版本的客戶端機器上的Java版本,它的正常工作。

0

它與網絡擁塞有關。有時applet響應非常慢,因此您需要在系統中設置JPI_PLUGIN2_NO_HEARTBEAT = 1環境變量。

說明:這會禁止在瀏覽器端VM和客戶端JVM實例之間發送心跳消息。這可以讓客戶端JVM獨立於瀏覽器端VM。

參考(一個或多個)的根本原因的解決方案: https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Tivoli+Network+Manager/page/Browser+JRE

http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6953754


更新:

問題 - 當用於小應用程序的瀏覽器請求時,它創建了通信系統的JVM。默認情況下,此通信的有效期爲10秒。如果他們無法在給定的時間範圍內進行通信,則JVM殺死該線程。這導致applet的異常行爲。

解決方案 - 我們必須在applet未正確加載(一次性安裝)的系統中設置「環境變量」。它會在系統的JVM和瀏覽器的虛擬機之間移除10秒的響應時間,換句話說就是「Hearbeat time」設置。我們可以創建可執行文件來創建該系統環境變量。我們需要重新啓動系統以確保JVM將使用此變量。

如何/在哪裏設置系統環境變量?

要設置系統環境變量遵循以下步驟:

第一步:打開我的電腦屬性

第二步:在Windows 7中,你會發現高級系統設置在左側面板中打開它通過一次點擊。

第3步:如果您不在高級選項卡中,請導航到高級選項卡。

第4步:點擊底部的「環境變量...」按鈕,它會打開對話框。

第5步:找到「系統變量」框架並創建新項目。

第6步:提供變量名稱爲「JPI_PLUGIN2_NO_HEARTBEAT」(不含引號)和變量值爲「1」[one](不含引號)。

第七步:點擊OK

第八步:點擊OK

第九步:點擊OK

步驟10:現在重新啓動您的系統正。

您還可以使用在回答中提供的鏈接...針對Java漏洞的解決方案..

+0

可以請您詳細說明嗎?我不明白。其實我覺得java版插件的問題。 – iMBMT

+0

我更新了我的答案..與正確的描述 –

+0

謝謝,這種解決方案也有助於完全解決客戶端的另一個問題。感謝分享它。獎勵賞金! – iMBMT