2014-01-15 45 views
10

我有一個Java小程序,它具有以下的JavaScript代碼,這使得當窗口被關閉,以執行一些一LiveConnect的通話頁面清理任務:LiveConnect的呼叫阻塞7u45自從Java 7u51面世

window.onbeforeunload = function(e) { 
    var result = document.OutApplet.closeCheck(); 

直到昨天,這個按預期工作,並在小程序內執行清理任務。

既然Java 7u51可用,我今天就訪問了這個applet,並在提示更新到最新版本的Java時選擇'Later'。現在,當我關閉窗口時,出現JavaScript錯誤:

Object doesn't support property or method 'closeCheck'

只是爲了說明這是安裝了Java 7u45。

這是預期的行爲還是有什麼我可以做,使它仍然工作在7u45?在發行說明中我找不到任何提及,在7u51之前,我們的實時連接呼叫仍然可以在沒有處於最新安全基線的情況下運行。

更新

以上是我的Java安全性設置爲高。

我已將其更改爲「中」並重覆上述操作。我現在收到一條消息,詢問是否要允許或阻止LiveConnect呼叫。

Allow LiveConnect prompt

現在看來有一個無證(只要我能找到)的要求,如果你是在安全基準(7u51)LiveConnect的纔有效。

注意LiveConnect的調用applet的工作沒有任何改變的小程序,一旦我已經更新到這裏7u51

+3

的我只是發現有類似的問題這篇文章從別人:https://community.oracle.com/thread/2620141 –

回答

6

這是一個已知的Java缺陷影響從7u25到7u45所有版本:

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

唯一的辦法就是升級到 7u45 7u51或設置Java安全性滑塊設置爲「中」。

[編輯]根據bug報告

+0

那會解釋一下。儘管如此,仍然會迫使我們的所有用戶更新到7u51,而現在這是基準線。 –

+1

「唯一的解決辦法是升級到7u45」。我認爲你的意思是升級到7u51。 –

+0

我們確實遇到了7u45的問題,所以您必須是正確的@chrisr。事實上,這個錯誤報告明確指出,這將被固定在7u51 – Cerber

0

同樣的問題。

甲骨文在9月份曾警告過新的強制性(見下文)選項。 我們實施和去年,但今天他們似乎並不管用月底交付他們...

https://blogs.oracle.com/java-platform-group/entry/new_security_requirements_for_rias

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html

+0

我我不確定這是相關的。我們也實現了這些,我們的小程序仍然運行良好。我們面臨的問題是它運行後,我們試圖從JS進行LiveConnect調用。 –

+1

@ChrisR你看過[Caller-Allowable-Codebase Attribute](http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#caller_allowable),它控制誰可以使用LiveConnect – Cerber

+1

是的,從我們第一次看到您幾個月前鏈接到的博客文章開始,我們就已經具備了該屬性。我已經更新了上面的答案,說我們的小程序在7u51上保持不變。鑑於它也習慣於像今天7點45分那樣工作,直到今天我能想到的唯一變化就是安全基線,因此我認爲現在只有在安全基線時纔有效。 –

1

,爲什麼這最近(昨天)啓動失敗是因爲如果編輯基線已經更新https://javadl-esd-secure.oracle.com/update/baseline.version,現予以更正修復版本C:\ Users \用戶名\ AppData \ LocalLow \ Sun \ Java \ Deployment \ security \ baseline.versions並將1.7.0_51更改爲1.7.0_45並保存該文件,它應該再次開始工作(但最終可能會在某些任意時間後更新)。

0

,如果你不能升級你的JRE另一種解決方案(卡1.7.0_25和1.7.0_45之間):

  • 打開JRE 1.7的Java控制面板(javacpl.exe)
  • 去高級選項卡
  • 取消選中下面的「Java插件」選項:「啓用下一代Java插件」
1

1)關閉所有瀏覽器和程序

2)在Windows資源管理器,轉到%LOCALAPPDATA%低\太陽\的Java \部署

3)打開名爲「deployment.properties」

4)添加在下面的一行在結束文件這個文件

    deployment.expiration.check.enabled=false 

5)保存並關閉文件

+0

這可能會起作用(我還沒有嘗試過),但是在用於訪問小程序的每臺計算機上進行這種更改不僅僅是將它們全部更新爲Java 7u51。 –