へっぽこブラウザ
サーバーにつないでみる
セキュリティーを設定してみる
さーばーにつないでみる
ハローが終わって、次は簡単なネットワークプログラムを作ってみました。
URLClient.java
URLClientGUI.java
URLClientGUIの方がメインのアプリケーションです。
テキストフィールドにWEBページのURLを入力し、接続ボタンを押すと、
そのURLのページを文字列で取得し、テキストエリアに文字列で表示します。
ハローのときと同じように、JNLPを作り実行できます。
実行はこちらのページから行えます。
セキュリティー設定
ここで入力するURLがJARをダウンロードしたサーバーと同じならば、
プログラムは正常に動きますが、他のURL(例えば、"www.yahoo.co.jp")を
入力すると
java.security.AccessControlException
がスローされます。
開発者ガイド
には以下のような記述があります。
ユーザーが許可しない限り、サンドボックスの中の操作しか許さないようです。
- アプリケーションが、セキュリティ保護された「サンドボックス」内で実行されるように記述されている場合、次の制限に従う必要があります。
- ローカルディスクへのアクセスを行わない。
- すべての JAR ファイルを同じホストからダウンロードする。
- JAR ファイルのダウンロード元ホストへのネットワーク接続だけが許可される。
- セキュリティマネージャはインストールできない。
- ネイティブライブラリは使用しない。
- システムプロパティへのアクセスは制限される。アプリケーションは、JNLP ファイルで定義されたすべてのシステムプロパティに、読み取りおよび書き込みのアクセス権を持つ。また、アプレットがアクセス可能なプロパティセットには、読み取り専用のアクセス権を持つ。
- アプリケーションは、System.exit 呼び出しを使用できます。
- システムへの無制限のアクセスを必要とするアプリケーションは、署名付きの JAR ファイルセットで配信する必要があります。各 JAR ファイル内のすべてのエントリで署名が必要です。
署名付JAR
というわけで、JARに署名付けてみました。
署名の仕方は、イマイチ理解にはいたりませんでしたが、
Java Key 実験場
を見てなんとか署名できました。
でもって、JNLPにセキュリティー設定を行います。
<security>
<all-permissions/>
</security>
これはアプリケーションにすべての操作を許可します。
本当は、もっと細かく設定すべきでしょう。
へっぽこぶらうざ(Sign付)を選択し、実行すると、
今度は実行時にアクセス許可のメッセージが表示されます。
ソースやJNLPはこちらにおいてます。
(2002/8/4)
もどる