是否可以在策略文件中的Jar文件名中使用通配符?

时间:2014-01-07 18:03:53

标签: java security javapolicy

是否可以替换代码:

grant codeBase "file:${home.url}/installed/Engine/lib/runtime_3.jar" {

   // permission for the Engine
   permission java.util.PropertyPermission "*", "read";
   permission java.util.PropertyPermission "*", "write";
};

使用这样的代码:

grant codeBase "file:${home.url}/installed/Engine/lib/runtime_*.jar" {

   // permission for the Engine
   permission java.util.PropertyPermission "*", "read";
   permission java.util.PropertyPermission "*", "write";
};

为避免使用新版本的库重复更改策略文件?

我没有在任何地方看到过这种情况(并且我很难验证这一点)。

1 个答案:

答案 0 :(得分:1)

不,但您可以将其替换为:

grant codeBase "file:${home.url}/installed/Engine/lib/*" {

或者这个:

grant codeBase "file:${home.url}/installed/Engine/lib/-" {

在您进行广泛研究期间,documentation没有发现这一点,我感到非常惊讶:

带有尾部“/ *”的codeBase匹配该目录中包含的所有文件(包括类和JAR文件)。带有尾部“/ - ”的codeBase匹配目录中的所有文件(包括类和JAR文件),并递归地包含该目录中包含的子目录中的所有文件。