繁体   English   中英

自Java 7u51可用以来,LiveConnect调用在7u45被阻止

[英]LiveConnect calls are blocked on 7u45 since Java 7u51 became available

我有一个带有Java applet的页面,该applet具有以下JavaScript代码,当窗口关闭时,它会执行LiveConnect调用以执行一些清理任务:

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

直到昨天,它按预期工作,并在applet中执行清理任务。

现在Java 7u51可用了,我今天访问了这个applet,并在提示更新到最新版本的Java时选择了“Later”。 现在当我关闭窗口时,我收到一个JavaScript错误:

对象不支持属性或方法'closeCheck'

只是为了澄清这是安装了Java 7u45。

这是预期的行为,还是我可以做些什么让它仍然在7u45上工作? 我在发行说明中找不到任何提及,在7u51之前,我们的实时连接呼叫仍然可以在没有最新安全基线的情况下工作。

更新

以上是我的Java安全设置为高。

我已将其更改为“中”并重复上述操作。 我现在收到一条消息,询问我是否要允许或阻止LiveConnect呼叫。

允许LiveConnect提示

似乎现在有一个未记录的(据我所知)要求LiveConnect仅在您处于安全基线(7u51)时才能工作。

请注意,一旦我更新到7u51,对applet的LiveConnect调用无需更改applet

这是一个已知的Java bug,影响从7u25到7u45的所有版本:

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

唯一的解决方案是升级到 7u45 7u51或将java安全滑块设置为“中”。

[编辑]根据错误报告纠正修复版本

至于为什么最近(昨天)开始失败是因为基线已经更新https://javadl-esd-secure.oracle.com/update/baseline.version ,现在如果您编辑C:\\ Users \\ username \\ AppData \\ LocalLow \\ Sun \\ Java \\ Deployment \\ security \\ baseline.versions并将1.7.0_51更改为1.7.0_45并保存文件,它应该重新开始工作(但最终可能会在一段任意时间后更新)。

1)关闭所有浏览器和程序

2)在Windows资源管理器中,转到%localappdata%low \\ Sun \\ Java \\ Deployment

3)打开名为“deployment.properties”的文件

4)在此文件末尾添加以下行

                 deployment.expiration.check.enabled=false

5)保存并关闭文件

同样的问题在这里

甲骨文在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

另一种解决方案,如果您无法升级JRE(卡在1.7.0_25和1.7.0_45之间):

  • 打开1.7 JRE的Java控制面板(javacpl.exe)
  • 转到高级选项卡
  • 取消选中以下“Java Plug-in”选项:'启用下一代Java插件'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM