1

我目前正在编写一个 Java 小程序(实际上是 JApplet),它使用 Java AWS SDK 从我的 S3 存储桶中下载一些文件。当我在 Eclipse 的 Applet Viewer 上运行 Applet 时,它运行良好,但是当我尝试在浏览器上运行它时遇到了问题。

我确实已经阅读了一些关于类似问题的 SO 问题,但是在遵循提供的答案之后,我仍然没有找到解决这个问题的方法。

起初我尝试导出一个包含所有依赖项的可运行 jar,至少用于测试。但是我在我测试的每个浏览器(Firefox、Chrome 和 IE)中都收到了这个错误消息:

access denied ("java.util.propertyPermission" "com.amazonaws.sdk.disableCertChecking" "read")

经过一番搜索,我发现这可能是因为我的 jar 没有签名。所以我自己签名并再次尝试只是得到同样的错误。我什至决定使用单独的罐子,而不是将它们装入一个罐子并全部签名,但无济于事。

AwsCredentials.properties 文件是最新的,并且与 jar 位于同一目录中,但我认为这不是导致问题的原因。

我用来嵌入小程序的 HTML 代码:

<applet code="path.to.class.Packer" 
        archive="signed-packer.jar" 
        width="400px" height="200px">       
</applet>

如果您想了解更多信息,请告诉我。我很感激在这个问题上的任何帮助。谢谢你。

4

1 回答 1

1

是的。不允许在浏览器沙箱中运行的小程序读取任意 Java 系统属性。这是一个安全限制。只要 Java 接受签名证书,对 applet JAR 文件进行签名就足够了。(您是否已将自签名证书添加到 Java 安装的密钥库中?)

相关问题:自签名小程序未获得完整权限

于 2012-12-30T22:40:20.783 回答