Java 安全管理器允许通过定义如下子句来指定某些代码段的权限:
...
grant codebase http://foo.bar.com/test.jar {
permission java.io.FilePermission "${user.dir}/*", "read,write"; };
...
在策略文件中(默认值: <JRE_root>\lib\security
.
这允许来自给定 URL 的代码从/向用户的主目录读取和写入(这当然是禁忌,但那是另一个故事了)。
但是我如何定义“无权限”,即是否不允许该代码在任何地方读取或写入?我试图指定:
...
permission java.io.FilePermission "/-", "";
...
"/-"
表示根目录及其下面的所有内容(即所有内容),第二个参数 ""
是为了表示“”。但是当我像上面这样指定时,我收到“ token 错误”。显然""
不是一个有效的“ Action ”。但是,我们还能如何在这些策略文件中表达“无”或“无许可”呢?
最佳答案
只需不要添加任何权限行即可。类通常会被授予读取自己的代码和资源的权限。 (请参阅 java.io.FilePermission 的 API 文档。)
关于Java安全管理器: how to specify "No Permission"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17529531/