3

我想编写一个 java 安全策略,它允许除特定类型之外的所有权限。

一个例子可能是:

  • 应用程序只能读取调用的系统属性MY_ACCESSIBLE_SYSTEM_PROP_1MY_ACCESSIBLE_SYSTEM_PROP_2
  • 应用程序无法读取任何其他系统属性
  • 应用程序无法写入任何系统属性
  • 该应用程序没有其他安全限制

对此的安全策略可能如下所示:

grant {
    permission java.util.PropertyPermission "MY_ACCESSIBLE_SYSTEM_PROP_1", "read";
    permission java.util.PropertyPermission "MY_ACCESSIBLE_SYSTEM_PROP_2", "read";
}

...但是我可以添加什么来允许除 之外的java.util.PropertyPermission所有其他权限?

我已经阅读了很多文档并开始认为使用默认的 Java 安全管理器是不可能的。我是否应该只编写自己的安全管理器来允许我感兴趣的领域之外的任何权限?

4

1 回答 1

1

默认的 SecurityManager 只是参考当前安装的策略(由 Policy.getPolicy() 返回)来查看是否应该授予给定的权限。

默认的 Policy 实现(根据策略文件授予权限)不允许您定义已授予权限的例外情况,因此除了某些后备列表权限之外,无法授予代码执行任何操作的权限。

如果您需要这种行为,则应实施自定义策略(请参阅http://docs.oracle.com/javame/8.0/sdk-dev-guide/custom_providers.htm

于 2016-11-06T15:16:51.830 回答