如果我想部署高权限的小程序,它们需要被签名。为此,会创建一个证书,然后使用 jarsigner 对 jar 文件进行签名。之后在 HTML 代码中必须指定我们之前签名的代码、代码库和存档(jar)。
但是,我编写了一个 servlet,它充当两件事:
- 它位于代码库指向的 URL 处,并为小程序提供类字节码。
- 同一个 servlet 还使用序列化与 applet 进行通信,因此,每当 applet 获得一个类时,它不知道它会转到最终返回到 servlet 的代码库。
不幸的是,对于签名的小程序,需要存档。现在 servlet 也能够加载一个 Certificate 对象并将其发送到 applet。所以这里是设置:在某一时刻小程序接收类字节码,它也有证书。如果小程序可以使用该证书实例化所有接收到的类,那就太好了(否则来自 jar 的代码已签名,而外部代码不会向用户提示讨厌的消息)。
所以我向 Java 爱好者提出的问题是:我是否可以 通过任何方式使用字节码数据和证书将类实例化为签名对象,以便插件弹出安全对话框,接受证书并提升对象的权限。我能找到的是,有一个类 CodeSource 接受代码库 URL 和证书,并且对签名过程至关重要。我不确定如何拦截小程序内的类加载以安装不是通过存档通过 JAR 文件获得的其他证书。
你说什么?谢谢一堆。