3

我正在开发一个巨大的小程序,加载 100 多个罐子,其中 50 个是第三方的。所有这些都经过签名和信任。

不幸的是,openmap 加载二进制文件(形状和图层文件)。我无法签署这些文件(AFAIK),因为它们不是罐子,没有清单等。

由于 jar 加载二进制文件,我在运行时收到混合代码警告。我想避免这种情况的唯一方法是将每个 .jar 标记为“Trusted-Library:true”。更改所有 .jar 上的清单意味着必须重新签署所有 .jar,这是一个政治问题。

我知道可以在 java 控制面板中禁用该对话框。我正在寻找另一种解决方法。天真地,我希望能够以某种方式标记 openmap 或使用它的我的 jar 是受信任的(或任何它需要的)以在没有警告的情况下加载这些文件。我尝试使 openmap 成为受信任的库,但这并不能消除错误。如果我尝试使使用 openmap 的 jar 成为受信任的库,那么我会遇到问题,因为我的 jar 依赖于其他 jar,并且我的 jar 中的类定义无法加载,因为这些依赖类位于另一个类加载器中。

编辑:
这似乎触发了对话框(单击“是,阻止可能不安全”以获取此日志记录语句)

安全性: http://localhost:8080/app/client-lib/中的资源名称“http://localhost:8080/maps/politicalWorld/vmap_political_world/vmap_area_thin.shp” :java.lang.SecurityException:受信任的加载程序试图加载来自http://localhost:8080/app/client-lib/ 的沙盒资源

4

1 回答 1

2

如果您将文件装入罐子,签名并将它们作为资源加载,那应该没问题。您可能无法通过代码库中的 URL 加载它们(因为它们无法与小程序的一部分区分开来)。但是,如果您将它们移出代码库,请记住它们可能会被恶意软件替换,因此它们是不可信的。

我建议不要添加Trusted-Library: true,因为这不太可能是安全的。并不是说任何代码都是恶意的,而是它不会被设计为安全地用作库。

禁用混合代码警告也会使客户端机器受到混合代码警告应该减轻的攻击。

于 2012-01-18T00:57:57.947 回答