Applet:Java.lang.SecurityException:类“...”的签名者信息与同一包中其他类的歌手信息不匹配

时间:2012-05-11 20:39:50

标签: java applet securityexception

我有一个applet,不会为在Vista上运行IE7的1个客户端加载。

错误是:

java.lang.SecurityException: class "com.arup.web.printing.WebPrintApplet"'s signer information does not match signer information of other classes in the same package.

applet代码位于名为: WebPrintApplet.jar 的jar文件中,并且它依赖于Sun的 PdfRenderer.jar 即可。我已使用相同的证书签署了两个jar文件,并且我们正在从我们的Web服务器上的同一文件夹中托管jar文件。

我对在我们的案例中可能导致此问题的原因感到茫然。我的applet的代码都在com.arup.web.printing.WebPrintApplet包中,整个jar文件都已签名。

有关问题以及如何解决问题的任何线索?

3 个答案:

答案 0 :(得分:0)

  

我已经使用相同的证书签署了两个jar文件,我们正在从我们的Web服务器上的同一文件夹中托管jar文件。

如果其中一个Jars已经签名,它现在将有多个数字签名。这可能会导致错误。

另外,Java 7 JRE应该支持使用JWS部署嵌入式applet,这反过来允许对打印机进行沙盒访问。这是demo. or the JNLP PrintService

答案 1 :(得分:0)

由于您似乎有很长的测试周期,您可能需要调查另一个失败的来源。如果您在两个不同的jar文件中的相同包中有类,则通常会出现此错误,例如,如果您对jar文件中的pdf渲染器进行了扩展/更改。我认为你应该通过设计避免这种结构,如果不可能,你必须为两个罐子提供相同的签名者信息。

当前的插件在不同的jar上支持不同的签名者,但我不知道具有“共享”包的不同jar上的许多签名者的实现方式。

答案 2 :(得分:0)

我知道这已经有两年了,但在我的情况下它可能有所帮助:

将违规类的jar放在$ JDK / jre / lib / ext /中,然后使用新的JVM进程重试。