Java Applet沙箱安全性,本地访问和外部访问

我的(代码签名)java applet中存在一个错误“访问被拒绝(java.net.SocketPermission xxxx:443 connect_resolve。”我们有一个html“保存”按钮,它正在调用(通过javascript)applet方法来保存文件,加载到小程序中,进入网络服务器。经过一些广泛的谷歌研究,我通过在doPrivileged()中包装我们的小程序的保存方法代码来修复它。错误似乎是固定的,人们很高兴。

我想确认我完全理解我应用的原始情况和解决方案(倒退,我知道,但转身时间不允许我真正研究这个问题)。

特别让我感到困惑的是,我们在内部网络中的测试服务器上广泛测试了我们的applet,直到我们从网络外部的客户端计算机上尝试javascript“保存”按钮之前,才发现此错误。 所以在这一点上,我只是做了一个有根据的猜测:这就是java applet沙箱机制的工作原理。

这是真的? 只要客户端小程序从位于同一域网络中的客户端计算机访问Web服务器资源,它就被视为在沙箱墙内? 如果客户端计算机位于Web服务器的本地网络外部,则applet请求被认为是在沙箱墙之外并且需要doPrivileged? 还是在这里有另一种解释我错过了?

我无法在sun的文档中找到任何内容,也没有通过google查找具体certificate或反驳我断言的内容。 非常感谢来自具有更多java applet经验的人的澄清

只要客户端小程序从位于同一域网络中的客户端计算机访问Web服务器资源,它就被视为在沙箱墙内?

如果是这样,你的意思是一个沙盒小程序可以“回家”到自己的服务器,然后是。

如果客户端计算机位于Web服务器的本地网络外部,则applet请求被认为是在沙箱墙之外并且需要doPrivileged?

applet需要信任(数字签名+最终用户接受)才能从其他服务器访问资源。 让它变得更复杂的是JavaScript。 突然间,JRE会考虑“不受信任”的因素。 通过将代码包装在doPrivileged()方法中,我们向JRE说,即使被其他东西(如JS)调用,该代码也是可信任的。