我想指定java.security.AllPermission
在我的计算机上运行的某些小程序(用于调试和安全测试)。但是,我不想让我运行的所有小程序都拥有此权限。所以,编辑我的用户 Java 策略文件(我通过测试确保它是正确的策略文件),我尝试输入这个值:
grant codeBase "http://host_where_applet_lives/-" {
permission java.security.AllPermission;
};
当小程序尝试做一些强大的事情(在我的例子中创建一个新线程)时,这个值会失败。但是,当我输入以下值时:
grant {
permission java.security.AllPermission;
};
小程序能够执行强大的操作。唯一的区别是缺少codeBase
属性。
对此处提出的类似问题的回答 [1] 似乎暗示(但从未显示或证明)AccessController.doPrivileged()
可能需要调用。对我来说,这听起来是错误的,因为当我向所有小程序授予权限时我不需要该调用(我展示的第二个示例)。即使这是一个解决方案,在我运行的小程序中乱扔垃圾AccessController.doPrivileged()
也不是一件容易的事,也不一定是可能的。最重要的是,我的测试表明这无论如何都行不通。但我很高兴听到更多关于它的想法。