【问题标题】:JAVA SecurityManager - custom BasicPermission with multiple actionsJAVA SecurityManager - 具有多个操作的自定义 BasicPermission
【发布时间】:2013-03-27 16:19:01
【问题描述】:

我创建了以下策略文件:

grant {
    permission StackPermission "use,save";
};

为了访问它,我使用以下参数运行我的 JVM:

-Djava.security.manager -Djava.security.policy=my.policy

我的代码如下所示:

SecurityManager sec = System.getSecurityManager();
sec.checkPermission( new StackPermission( "use,save" ) );

一切都很好,但我想更细化一点,而不检查“保存”操作:

sec.checkPermission( new StackPermission( "use" ) );

即使我的策略同时指定“使用”和“保存”,这似乎也不起作用,我应该怎么做才能提供这样的功能?

非常感谢, 弗拉德

【问题讨论】:

    标签: java security policy securitymanager


    【解决方案1】:

    通常权限构造函数有三种形式:无参数、namenameactions。我没有你的StackPermissions 的源代码(我建议把它放在一个非默认包中,顺便说一句),但我猜你刚刚得到了name,但把它当作action 对待。有点遗憾的是,Java 允许构造函数即使在 arity 上也可以重载。

    因此,将类放入一个命名包中,并在类和策略文件中的action 之前添加一个name

    (一般来说,我建议尽快摆脱“Java 2 安全模型”。相反,使用一个检查方法返回一个对象,该对象能够在没有进一步安全检查的情况下执行特权操作(一个 对象-capability 术语)。在更高层的代码中做同样的事情。)

    【讨论】:

      猜你喜欢
      • 2013-08-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      • 1970-01-01
      • 2017-10-22
      • 2018-09-04
      • 2017-05-17
      相关资源
      最近更新 更多