2014-01-07 21 views
1

是否有可能取代像代码:这样是否可以在策略文件中的jar文件名中使用通配符?

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"; 
}; 

这样才能避免反复变化与图书馆的新版本的政策文件?

我还没有看到这记录在任何地方(并且我很难验证这一点)。

+0

在部署时,Jars需要进行数字签名,所以我看不到触及策略文件的地步,您也可以在开发过程中解决如何对它们进行数字签名。 –

+0

我希望能够做到这一点。我将所有第三方.jar文件放在同一个文件夹中,并希望为其中的一组授予特定的权限(例如,我有7个spring .jars,我希望授予它们相同的权限)。使用“spring- *”的通配符对我来说非常有用。 –

回答

0

没有,但你可以用这个替代它:

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

或本:

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

颇为惊讶您在大量的研究中没有发现这种在documentation

带有尾部“/ *”的代码库与该目录中包含的所有文件(包括类和JAR文件)相匹配。具有尾部“/ - ”的代码库与目录中的所有文件(类和JAR文件)匹配,并递归地包含在该目录中的子目录中的所有文件。
+1

谢谢,我不想授予目录中所有jar的权限,只是一个经常升级的特定jar。 –

相关问题