我创建了以下策略文件:
授予{ 权限StackPermission“使用,保存”;};为了访问它,我使用以下参数运行我的JVM:
-Djava.security.manager -Djava.security ….
一般来说,权限构造函数有三种形式:no-args, name ,和 name 和 actions 。我没有你的源代码 StackPermissions (我建议把它放在非默认包中,顺便说一句),但我猜你刚刚得到了 name 但是正在对待它 action 。有点遗憾,Java允许构造函数即使在arity上也会被重载。
name
actions
StackPermissions
action
因此,将类放在命名包中并添加一个 name 之前 action 在类和策略文件中。
(一般情况下,我建议尽快远离“Java 2安全模型”。而是使用一个检查方法返回一个具有执行特权操作的对象的方法,而无需进一步的安全检查( 对象的能力 在语言中)。在更高层的代码中执行相同的操作。)