我正在开发一个巨大的小程序,装载超过100个罐子,其中50个是第三方。他们都是签名和信任的。
不幸的是,其中一个openmap加载二进制文件(形状和层文件)。我不能签署这些文件(AFAIK),因为它们不是jars,没有清单,等等。
由于jar加载二进制文件,所以在运行时我会得到混合代码警告。为了避免这种情况,我想出的唯一办法是将每个.jar标记为“可信库:真”。更改所有.jars上的清单意味着所有的.jars都必须重新签名,这是一个政治问题。
我知道这个对话框可以在java控制面板中禁用。我在找另一个解决办法。天真地,我希望能够以某种方式标记openmap或我的jar,它使用openmap或jar被信任(或不惜一切代价)加载这些文件,而无需警告。我试着让openmap成为一个可信任的库,这并不能消除错误。如果我尝试让使用openmap的jar成为受信任的库,那么我就会遇到问题,因为我的jar依赖于其他jar,而且jar中的类定义无法加载,因为这些依赖类位于另一个类加载器中。
编辑:
这似乎会触发对话框(单击“是,阻止可能不安全”以获取此日志语句)
安全性:http://localhost:8080/app/client-lib/:java.lang.SecurityException中的资源名"http://localhost:8080/maps/politicalWorld/vmap_political_world/vmap_area_thin.shp“:受信任的加载程序试图从http://localhost:8080/app/client-lib/
加载沙箱资源
发布于 2012-01-18 00:57:57
如果您将文件放入jars中,将其作为资源进行签名和加载,这应该是可以的。您可能在通过代码库中的URL加载它们时遇到问题(因为它们不可能与applet的一部分区分开来)。但是,如果将它们从代码库中移出,请记住,它们可能被恶意的东西所取代,因此不能信任它们。
我建议不要添加Trusted-Library: true,因为这不太可能是安全的。不是说任何代码都是恶意的,而是它不会被设计成被安全地用作库。
此外,禁用混合代码警告会打开客户端机器,以攻击混合代码警告应该减轻的攻击。
https://stackoverflow.com/questions/8901664
复制相似问题