Java安全管理器以什么顺序评估和应用权限?
我试图找出Java安全管理器评估grant{…}子句的顺序和程度。 比如说,如果我想授权一些下载的代码从用户主目录的子目录Java安全管理器以什么顺序评估和应用权限?,java,security,Java,Security,我试图找出Java安全管理器评估grant{…}子句的顺序和程度。 比如说,如果我想授权一些下载的代码从用户主目录的子目录(…/X/Y/Z)中读取并写入,而所有其他代码可以读取(但不能写入)高达2级(即用户主目录的子目录../X及以下) 我怎样才能具体说明呢?下面这样的顺序正确吗 ... grant codebase http://foo.bar.com/test.jar { permission java.io.FilePermission "${user.dir}/X/Y/Z/*",
(…/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"; };
...
i、 e.作为test.jar
文件的一部分下载的代码的安全评估是否会在第一个grant子句之后停止(因此不会授予对目录../X/Y
的读取权限)
通过以上设置,我可以确定当前应用程序的否代码将获得更高的访问权限,即进入用户的主目录本身(甚至更高的…)类将获得整个适用权限集。秩序在这里没有真正的意义 通过提供以下JVM参数,可以打印出应用(有时是扩展)策略的顺序: -Djava.security.manager-Djava.security.debug=all 我会发布一个示例输出,但结果表明控制台输出非常非常长
- 为了直接回答您关于评估顺序的问题,我假设它是实现定义的,因为我从未找到关于系统细节的权威文档
- 至于保证无法访问用户主目录,不可能不看到加载的所有策略文件(包括与JRE安装捆绑在一起的一个,以及user.home中的一个,如果它们存在的话)