java.policyファイル。
jre/lib/securityに入っているセキュリティポリシファイル。1.4だと、
grant codeBase "file:${java.home}/lib/ext/*" {
5.0だと、
grant codeBase "file:${{java.ext.dirs}}/*" {
なんか{が二重になってるんですけど。でも、ちゃんと効いているみたいだ。extディレクトリに置いたファイルはセキュリティマネージャを指定してもセキュリティ違反にならない。試しに、
grant codeBase "file:${{user.home}}/*" {
とかして、homeに危険なプログラム置いてみたが、セキュリティ違反になるので、やっぱり二重カッコはダメっぽい。まさか額面通り読むべき?
String ext = System.getProperty("java.ext.dirs");
System.out.println("ext dir:" + ext);
System.out.println("ext ext dir:" + System.getProperty(ext));
ext dir:d:\jdk1.5.0_07\jre\lib\ext ext ext dir:null
んなわけないか(それに本当なら${${java.ext.dirs}}みたいにならないとおかしいし)。extを指定する時にだけ使える特殊表記なんだろうか。ここの最後に"General Expansion in Policy Files"というのがあって、それっぽいことが書いてある。java.ext.dirsというのは、ここで言うprotocolの1つなんだろうか。selfとaliasしか書かれていないので、不明。




