Java セキュリティ マネージャが grant { ... } 句を評価する順序と範囲を調べようとしています。たとえば、ダウンロードしたコードの一部に、ユーザーのホームディレクトリの特定のサブディレクトリからの読み取りと書き込みを許可したい場合)、他のすべてのコードは、最大 2 レベル上 (つまり、サブディレクトリとユーザーのホームディレクトリの下)。(.../X/Y/Z
.../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"; };
...
つまり、ファイルの一部としてダウンロードされたコードのセキュリティ評価はtest.jar
、最初の grant 句の後で停止しますか (したがって、たとえば directory への読み取りアクセスは許可されません.../X/Y
)。
そして、上記の設定で、現在のアプリケーションのどのコードも上位、つまりユーザーのホームディレクトリ自体 (またはさらに上位..) にアクセスできないことを確認できますか?