JNLP获得许可(JNLP get a permission)

2019-09-17 19:57发布

我开始通过JNLP我的应用程序时,对面的一个问题最近偶然。 我现在范围缩小到一个java.security.AccessControlException ,否认我关闭我的ExecuterService

所以,我做了一些阅读和发现,我需要的权限( modifyThread )成功地关闭该服务。 我还发现,我应该使用<security> -标签(在JNLP文件),要求它,但我有点困惑如何。

该标签的文件说:

[...]如果all-permissions指定的元素,应用程序将可以完全访问客户端机器和本地网络 。 如果一个应用程序请求完全访问权限,那么所有的JAR文件必须签名用户将被提示 [...]

从阅读这在我看来,我可以选择要么得到全部没有权限...这似乎是一个令人困惑的实现。 因为我只需要一个关机我的服务。

我也看了这篇文章 ,告诉我,我不应该要求所有的权限,因为我会再开辟恶意代码的用户计算机。

那么,有没有指定我只需要在特定的权限(的方式modifyThread ),我为此不需要我签字罐子? 或者将我必须去与“征我罐子,并要求一切” -approach?

Answer 1:

..will我必须去与“征我罐子,并要求一切” -approach?

是。 JWS权限进来3个级别1中,仅一个,其中改变的线程是允许的,是all-permissions

1)JWS安全级别

  • 沙箱。 提供了一个非常有限的环境。 被访问的印表机和本地文件系统只使用JNLP API服务,它提供的更有限形式的许可File提示用户后。 与窗口横幅来。 只能用自己的服务器进行通信。
  • j2ee-application-client-permissions -提供自发的(用户接受数字签名的代码之后)删除窗口横幅的JNLP API服务。
  • all-permissions -几乎任何东西,包括更换现有的安全管理器(是的,甚至是“所有权限”代码获取安全管理器在JWS -它只是非常宽松)。

也追从的联系JNLP与JWS页。 我个人可以推荐那些摘要和链接。



文章来源: JNLP get a permission