【问题标题】:Is it possible to write an exclusive Java Security policy for the default Security Manager?是否可以为默认安全管理器编写专有的 Java 安全策略?
【发布时间】:2014-09-17 13:29:34
【问题描述】:

我想编写一个 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 安全管理器是不可能的。我是否应该只编写自己的安全管理器来允许我感兴趣的领域之外的任何权限?

【问题讨论】:

    标签: java securitymanager security-policy


    【解决方案1】:

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

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

    如果你需要这种行为,你应该实现一个自定义策略(见http://docs.oracle.com/javame/8.0/sdk-dev-guide/custom_providers.htm

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-06-14
      • 2019-11-15
      • 2010-12-27
      • 2010-12-20
      • 2020-11-19
      • 2020-05-18
      • 1970-01-01
      • 2011-01-22
      相关资源
      最近更新 更多