我试图找出 Java 安全管理器评估 grant { ... } 子句的顺序和程度。例如,如果我想授权一些下载的代码读取/写入用户主目录的特定子目录(.../X/Y/Z
),而所有其他代码可以读取(但不能写入)最高 2 级(即子目录.../X
和在用户的主目录下面)。
我该如何指定?像下面这样的顺序是正确的吗?
...
grant codebase http://foo.bar.com/test.jar {
permission java.io.FilePermission "${user.dir}/X/Y/Z/*", "read,write"; };
...
grant {
permission java.io.FilePermission "${user.dir}/X/-", "read"; };
...
即作为test.jar
文件的一部分下载的代码的安全评估是否会在第一个授权子句之后停止(因此不授予对目录的读取访问权限.../X/Y
)?
并且我可以确定通过上述设置,当前应用程序的任何代码都不会获得更高的访问权限,即进入用户的主目录本身(甚至更高......)?