Java弹出窗口说应用程序包含无符号和签名代码

use*_*750 7 java security warnings mode mixed-code

我正在使用运行Java 1.7.0_21的Mac 10.7.我正在尝试运行已签名的Java applet应用程序,并且在应用程序结束时,我得到一个混合模式安全弹出窗口"阻止可能不安全的组件被运行?".我正在使用的所有罐子都签了名.

我可以在运行Java 6的Mac 10.6上运行相同的applet应用程序,但我没有得到混合模式警告.我也可以在Windows上运行应用程序而不会出现混合模式警告.

当我的所有罐子都签名后,为什么我会一直收到这个错误?

我用谷歌搜索混合模式警告,发现此链接.

http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/mixed_code.html#manifest

看完这个链接后,我有点困惑.根据此链接,我看起来需要在清单文件中提到"Trusted-Only"或"Trusted-Library"属性.我查看了我的清单文件,他们没有这些属性,所以我应该把它们放进去,或者只是罐子签名应该已经足够了.

有人可以请帮助我理解为什么即使一切都签名我都会收到此错误?

vip*_*vip 8

Java 7的更新21是一个强大的安全更新,它带来了一定数量的重大变化.

您应该查看其发行说明,有两个段落和两个已知问题与签名的罐子相关.

你的问题在于:

区域:部署/插件

概要:关闭应用程序时的安全弹出窗口

从JDK 7u21开始,在具有所有权限的已签名applet中调用代码的JavaScript代码被视为混合代码,如果签名的JAR文件未使用该Trusted-Library=true属性标记,则会引发警告对话框.请参阅使用权限混合代码和无权限的代码(文档链接)'.

对于运行了JavaScript调用的所有权限的已签名applet,不会弹出任何安全对话框(带有混合代码警告).但是在某些情况下会显示混合代码警告.

好消息:有一个解决方法:

作为解决方法,如果applet jar以所有权限运行并使用"Trusted-library:true"属性作为清单条目,则不会弹出混合代码警告.