Java Web Start でコードベースの異なるクラスにもセキュリティ許可

jnlp で all-permissions をたてても、jnlp と異なるコードベースのクラスにはそのパーミッションが適用されないようです。ファイル読み書きできないとか。
仕方がないので、自分で Policy ファイルを用意し、それをコード中で読み込みます。

なんでも OK ポリシーファイル(セキュリティ上は危険なのでしょうが)は

grant {
permission java.security.AllPermission;
};

で、このファイルを適当なパス上におき、メインクラス冒頭で

URL policyUrl = Thread.currentThread().getContextClassLoader().getResource("path/of/my/policy");
Policy.setPolicy(new PolicyFile(policyUrl));
Policy.getPolicy().refresh();

とすれば、何でも OK になります。細かい制御はポリシーファイルの設定で。