デザイプロジェクトBパート3 演習S1 解答例 目次にもどる | 問題にもどる

問題につかったコードの配置関係

問題1の解答

下記みたいに無かったファイル(dl.txt)が作成されているのを確認できればOKです.
C:\dp>dir dl.txt
 ドライブ C のボリューム ラベルは Windows XP です
 ボリューム シリアル番号は * です

 C:\dp のディレクトリ

ファイルが見つかりません

C:\dp>run all.txt DownloadWrite

C:\dp>java -Djava.security.manager -Djava.security.policy==all.txt NetMultiLoader DownloadWrite
DownloadWrite <= http://www.cs.shinshu-u.ac.jp/~kaiya/java/tmp/
HttpDownload <= http://kaiya.cs.shinshu-u.ac.jp/tmp/
WriteStrings <= http://cwww.cs.shinshu-u.ac.jp/~kaiya/

C:\dp>dir dl.txt
 ドライブ C のボリューム ラベルは Windows XP です
 ボリューム シリアル番号は * です

 C:\dp のディレクトリ

2005/12/17  19:09            15,174 dl.txt
               1 個のファイル              * バイト
               0 個のディレクトリ          * バイトの空き領域

C:\dp>type dl.txt
...

問題2と3の解答

全て禁止ににするポリシー[TXT] だと芸がない[TXT]ので, とりあえず最低限必要なパーミッションに近い ポリシーファイル(下記に同じ)をつくり,
// カレントディレクトリのコードは信用する
grant codeBase "file:."{
	permission java.security.AllPermission "", "";
};

// ロード基の表示
grant {
	permission java.lang.RuntimePermission "getProtectionDomain";
};

// DownloadWrite.class 自体は信用せよと問題に書いてるから
grant codeBase "http://www.cs.shinshu-u.ac.jp/~kaiya/java/tmp/"{
	permission java.security.AllPermission "", "";
};

// ネットへクライアントとして接続するコード
grant codeBase "http://kaiya.cs.shinshu-u.ac.jp/tmp/"{
	permission java.net.SocketPermission "www.cs.shinshu-u.ac.jp", "connect";
};

// ファイル保存のコード
grant codeBase "http://cwww.cs.shinshu-u.ac.jp/~kaiya/"{
	permission java.io.FilePermission "dl.txt", "write";
};
そいつを適当に修正することで,エラー表示を観察してみました.

TIPS


目次にもどる | kaiya $Id: index.html,v 2.1 2005-12-21 09:37:12+09 kaiya Exp kaiya $