[英]Java 7u51: LiveConnect (JavaScript) blocked due to security settings
[英]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仅在您处于安全基线(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之间):
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.