自java 7u45以来,java“富Internet应用程序”不允许使用哪些权限?

自java 7u45以来,java“富Internet应用程序”不允许使用哪些权限?,java,security,java-web-start,jnlp,Java,Security,Java Web Start,Jnlp,我知道,自从Java7U45和7u51以来,通过applet/webstart启动java应用程序的限制已经收紧 但是,以前如果您在jnlp中指定,例如,您实际上会获得所有权限—想象一下—但是现在,如果您指定权限:主jar清单中的所有权限,您不会获得所有权限 我知道你没有得到的一些是: java.net.NetPermission "specifyStreamHandler" java.util.PropertyPermission "*" "read,write" java.lang.Runt

我知道,自从Java7U45和7u51以来,通过applet/webstart启动java应用程序的限制已经收紧

但是,以前如果您在jnlp中指定,例如,您实际上会获得所有权限—想象一下—但是现在,如果您指定权限:主jar清单中的所有权限,您不会获得所有权限

我知道你没有得到的一些是:

java.net.NetPermission "specifyStreamHandler"
java.util.PropertyPermission "*" "read,write"
java.lang.RuntimePermission "accessDeclaredMembers"

我不断地遇到这些问题,我想有一个你能做什么和不能做什么的主列表,这不仅仅是通过尝试和错误。有人知道这样的列表吗?

您需要做的就是将其添加到jnlp文件中:

<security>
   <all-permissions/>
</security>

如果不需要权限,您仍然需要此权限,除非您必须使用“沙盒”而不是“所有权限”。

我认为java站点上的权限方面没有任何变化。在以后的一些更新中,部署和签名检查以及livescript都有一些更改。这些更改记录在发行说明和部署指南中。相关:。另请参阅:。含羞草建议不要签名,这样你就不能冲出沙箱了。@jww谢谢你。我已经阅读了这些内容,并遵守了所有新的安全要求,但我仍然没有获得所有权限,只是大多数权限。例如,无论您做什么,都不能读取/写入任何不启动jnlp的系统属性。我的应用程序需要对用户硬盘的完全读/写权限,因此我必须签署并使用所有权限。这是不正确的。我花了好几天的时间来做这件事——递归地解压我所有的JAR、取消排序、重新签名,同时将权限属性、代码库属性和任何/所有其他与安全相关的属性添加到清单中。我已经签署了JNLP,我已经添加到JNLP。它不会授予您所有权限。你仍然在一个半沙箱里。这就是问题所在。您能否给出一个java操作的示例,该操作在运行java webstart应用程序时引发安全异常?当然可以:java.lang.System.getPropertymy.property。如果在jnlp中不是主jar的jar中执行此操作,则会引发java.util.PropertyPermission的访问控制异常。没错,有一些新的限制,这可能是其中之一。在阅读您最初的问题时,我注意到您正在寻找一系列限制,而不是变通解决方案。您是否考虑过只编写一个webstart java代码,其中每个权限都有许多SecurityManager.checkPermission调用?要获得各种权限的列表,您可以参考此页面:嘿,这是一个非常好的主意。我可以试试。我想知道是否有一种方法可以内省并通过编程获得权限列表。。。我可以玩这个。谢谢
Permissions: all-permissions