2011-04-05 100 views
1

为什么当我在本地主机上打开HTML页面时,我的Java Applet不向我请求启动权限?为什么我的applet不向我请求权限,而是抛出AccessControlException?

更重要的是,小程序启动,但它什么都不能做。其职责之一是与网页连接。但事实并非如此。在控制台我可以读:

java.security.AccessControlException:访问被拒绝(java.net.SocketPermission www.onet.pl:80连接,解决)

我想有一个问题我的Java的安全设置。

+2

“同源”策略意味着不受信任的代码只能访问它来自的主机(除非目标主机包含适当的'crossdomain.xml'文件)。 – 2011-04-05 12:52:39

回答

0

自从我编写了最后一个小程序以来,我有一段时间了,但我认为你可能需要在你的罐子上签名。

+0

不,你误解了我。我希望我的小程序像Web中的任何其他小程序一样工作。当Java向我请求许可和小程序启动时,我单击“运行”。但在我的情况下,当我尝试从我的本地主机启动时,Java并未要求我获得许可。 – Leez 2011-04-05 13:25:16

+0

@李兹:我想他理解你的要求。除非你的applet已经签名,否则你不能要求额外的权限! – 2011-04-05 13:30:29

0

不受信任(即未签名)applet的一般策略是,它们只允许(网络方式)连接到它们加载的服务器。对于从文件系统本地加载的小程序,这意味着它们可以连接本地主机。

只有当小程序被签名(但是如果没有特殊的安全策略文件,用户给予所有权限,或者小应用程序使用JNLP函数请求某些访问),才会要求用户进行许可但这仅用于本地访问) - 为此,您需要最新的插件(1.6.0_10或更高版本)。

正如汤姆提到的,远程服务器可以允许其他站点的小程序(以及其他动态网页内容,如JavaScript,Flash等)通过cross domain policy file访问他的服务器。不过,我不确定Java插件上的哪个版本实现了这一点。

相关问题