Java Applet使用aws sdk获取访问被拒绝

时间:2012-12-30 22:11:54

标签: java amazon-web-services amazon-s3 japplet

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

我确实在类似的问题上阅读了一些SO问题,但在按照提供的答案后,我仍然没有找到解决这个问题的方法。

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

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

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

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

我用来嵌入applet的HTML代码:

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

如果您想了解更多信息,请与我们联系。 我对这个问题有任何帮助表示感谢。谢谢。

1 个答案:

答案 0 :(得分:1)

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

相关问题:Self-signed applet doesn't get a full permission