即使小应用程序已签名,并且设置了Caller-Allowable-Codebase属性,我们仍在应用程序中遇到LiveConnect安全警告:
第二个问题是,在IE,FF和Chrome中,“应用程序”和“发布者”字段设置为“未知”。显示的第一个安全信息似乎是从证书中提取的信息。
我的清单文件:
Manifest-Version: 1.0
Implementation-Vendor: xxx xxx Buildings AB
Implementation-version: 1.5.0.49829
Application-Library-Allowable-Codebase: *
Application-Name: Building Operation WebStation
Permissions: all-permissions
Created-By: 1.7.0 (Sun Microsystems Inc.)
Caller-Allowable-Codebase: *
Specification-Version: 1.0
Codebase: *
我阅读了有关security changes with LiveConnect的Oracle博客文章。
我也尝试添加Application-Library-Allowable-Codebase:*属性,但没有成功。 security attributes guide似乎没有任何区别。
选中该复选框不会执行任何操作,下一次我们导航到该applet时,警告将再次弹出。
jarsigner.exe输出“已验证jar”。
检查我们签署的证书会显示整个链-我们的公司> RapidSSL CA> GeoTrust GlobalCA。我已经将证书导入到多个Windows证书存储中,即使仅由受信任的根CA进行签名也已足够。
我们正在最新的JRE上进行测试,而使用JRE 8可获得相同的结果
Java插件10.67.2.01
使用JRE版本1.7.0_67-b01 Java HotSpot(TM)客户端VM
有人知道吗
最佳答案
之所以会出现第一个弹出窗口(LiveConnect警告),是因为您为*
使用了通配符Caller-Allowable-Codebase
:
Caller-Allowable-Codebase: *
您可能需要将javascript文件所在的域名或IP地址替换为,将
*
替换为。您可能还需要对
codebase
属性执行类似的操作。有关此属性的更多信息,请参见Codebase Attribute 。
呼叫者允许代码库属性
有关允许的值的描述,请参见代码库属性。如果将独立星号(*)指定为Caller-Allowable-Codebase属性的值,则从JavaScript代码到RIA的调用将显示安全警告,用户可以选择允许呼叫或阻止调用。还提供了一个记住该选择的选项,如果选中该选项,则在启动RIA时将不再显示警告。
来源Caller-Allowable-Codebase Attribute
Java Applet清单-允许所有Caller-Allowable-Codebase
似乎必须删除Trusted-Library属性才能使Caller-Allowable-Codebase正常工作,而不再发出警告。 但是,这会破坏Java 7 Update 21-40,Java 7 Update 21-40将JavaScript代码(该代码将调用以所有权限运行的已签名小程序中的代码)视为混合代码,并且如果未使用Trusted-Library = true属性标记已签名的JAR文件,则会引发警告对话框。
来源Java applet manifest - Allow all Caller-Allowable-Codebase,由Nikolas Pooch回答