Java 実行時のポリシーは、さまざまなソースを出所とするコードが、さまざまな主体として実行されるときに、どのようなアクセス権を利用できるかを指定するもので、Policy オブジェクトによって表現されます。デフォルトの Policy の実装は、静的な ASCII 形式のポリシー構成ファイルから情報を取得します。
ポリシーファイルは、簡単なテキストエディタを使用するか、このドキュメントで説明するグラフィカルな Policy Tool ユーティリティを使用して作成できます。Policy Tool を使うと、入力の手間を省けるだけでなく、ポリシーファイルの構文について知る必要がなくなるため、エラーを減らすことができます。
「Policy Tool の使用法」では、Policy Tool を使ってポリシーファイルを作成および修正する方法について説明します。
「例」では、Policy Tool の使用例を紹介し、詳しく説明します。
「関連項目」では、関連するドキュメントへのリンクを提供します。
Policy Tool の起動
Policy Tool を起動するには、コマンド行に次のように入力します。policytool「Policy Tool」ウィンドウが表示されます。
Policy Tool は、起動するたびに、「ユーザポリシーファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。デフォルトのユーザポリシーファイルは、ホームディレクトリにある
.java.policy
という名前のファイルです。ポリシーファイルが見つからない場合は、そのことを示すメッセージと空白の「Policy Tool」ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません (次の画面を参照)。
Policy Tool を起動したあとは、作業する任意のポリシーファイルを開くことができます。また、ポリシーエントリを追加したり、必要に応じてキーストアを指定したりして、ファイルを保存すれば、新しいポリシーファイルを作成することもできます。
Policy Tool をはじめて実行した時点では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。
新しいポリシーファイルの作成
新しいポリシーファイルを作成するには、「ファイル」 メニューから 「新規」 コマンドを選択します。現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられて、新しい「Policy Tool」ウィンドウが表示されます。そのウィンドウには見出しやボタンが表示されていますが、データは含まれていません。注: 上記の操作は、Policy Tool をはじめて実行する場合は必要ありません。Policy Tool はユーザポリシーファイルを開こうとしますが、そのファイルがまだ存在しないため (手動で作成した場合を除く)、データが何も含まれていないウィンドウが表示されます。
新しい「Policy Tool」ウィンドウが表示されたら、ポリシーエントリを作成したり、キーストアを指定したり (キーストア別名を指定したポリシーエントリがある場合) することができます。ポリシーファイルは、いつでも保存できます。
ほかのポリシーファイルのオープン
現在作業中のポリシーファイルとは別のポリシーファイルで作業するには、「ファイル」 メニューの 「開く」 コマンドを使います。現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられ、「開く」ダイアログが表示されます。このダイアログでは、ディレクトリ構造を移動して、作業するポリシーファイルがあるディレクトリを検索できます。ファイルを選択し、「開く」 ボタンを選択します。
選択したポリシーファイルの情報が「Policy Tool」ウィンドウに表示されます。表示される情報は、ポリシーファイル名、キーストアの URL (存在する場合)、そしてポリシーファイル内の各ポリシーエントリの CodeBase、SignedBy、および主体パートです。
キーストアの指定
ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、「編集」メニューの「キーストアの変更」コマンドを選択します。ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアのタイプ (省略可能) を指定します。
たとえば、
D:
ドライブのtests
ディレクトリにある mykeystore という名前のキーストアを指定するには、「新規キーストアの URL」というラベルの付いたテキストボックスに、次のようにfile:
URL を入力します。file:/D:/tests/mykeystoreまた、キーストアのタイプとして JKS (Sun がサポートしている独自のキーストアのタイプ) を指定するには、「新規キーストアのタイプ」というラベルの付いたテキストボックスに、次のように入力します。JKS注: 「新規キーストアの URL」の値は URL であるため、キーストアが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
キーストアの URL と、必要に応じてタイプを指定したら、「了解」 を選択します。操作を取り消す場合は、「取消し」 を選択します。操作を取り消さなかった場合は、「キーストア」というラベルの付いたテキストボックスに、指定したキーストアの URL とタイプが表示されます。
新しいポリシーエントリの追加
新しいポリシーエントリを追加するには、「Policy Tool」メインウィンドウで 「ポリシーエントリの追加」 ボタンを選択します。「ポリシーエントリ」ダイアログボックスが表示されます。
このダイアログボックスでは、次の情報を指定します。
- 「CodeBase」 エントリ (省略可能)。コードの出所を表す URL を指定します。たとえば、
D:
ドライブ上のローカルのJavaSoft\TESTS\
ディレクトリからのコードを指定するには、「CodeBase」 テキストボックスに、次のような URL を入力します。file:/D:/JavaSoft/TESTS/注: CodeBase の値には URL が含まれるため、コードソースが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
- 「SignedBy」 エントリ (省略可能)。コードに署名するために使われた非公開鍵を所有する署名者を参照するための、キーストアにある別名を指定します。たとえば、「duke」という別名を指定するには、「SignedBy」 テキストボックスに次のように入力します。
duke
- 「主体」 エントリ (省略可能)。アクセス権が許可されるために、どの主体としてコードを実行する必要があるかを示す、主体のリストを指定します。「新しい主体の追加」を参照してください。
- 1 つ以上のアクセス権エントリ。CodeBase および SignedBy の値によって指定されたソースからのコード (これらの値が指定されていない場合は任意のコード) に許可するアクセス権を指定します。「新しいアクセス権の追加」を参照してください。
SignedBy の値は、署名者に関連付けられた一式の公開鍵に、キーストアを使ってマッピングされる別名の文字列です。これらの公開鍵は、指定されたコードソースからのクラスが、実際にこれらの署名者によって署名されていることを検証するために使われます。
SignedBy の値には、複数の署名者をコンマで区切った文字列を指定できます。たとえば、「Adam,Eve,Charles」のように指定します。この場合は、各要素が OR ではなく AND で結合され、「Adam と Eve と Charles によって署名された」という意味になります。
SignedBy の値は省略できます。省略した場合は、「任意の署名者」という意味になり、コードに署名がなされているかどうかが検証されなくなります。同様に、CodeBase エントリを省略した場合は、「任意のコード」という意味になり、コードの出所が検証されなくなります。
このため、CodeBase エントリが存在しない場合は、指定された別名の署名が付いたすべてのコードに対し、指定されたアクセス権が与えられます。また、SignedBy エントリが存在しない場合は、コードに署名がなされているかどうか、まただれが署名したかには関係なく、指定された CodeBase を出所とするすべてのコードに対して、指定されたアクセス権が許可されます。CodeBase エントリと SignedBy エントリがどちらも存在しない場合は、すべてのコードに対して、指定されたアクセス権が許可されます。
注: CodeBase 値の正確な意味は、末尾の文字によって異なります。末尾が「/」の CodeBase は、指定されたディレクトリ内のすべてのクラスファイル (JAR ファイルを除く) を示します。末尾が「/*」の CodeBase は、そのディレクトリ内にあるすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。末尾が「/-」の CodeBase は、指定されたディレクトリとその下の全サブディレクトリ内のすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。
主体エントリには、「主体の値」のリストを指定します。それぞれの主体の値には、実行しているスレッドの主体セット内に存在していなければならない principal_type と principal_name のペアを指定します。主体エントリは省略可能です。省略した場合は、「任意の主体」という意味になります。
principal_type が指定されておらず、principal_name が引用符で囲まれた文字列である場合は、実行時にポリシーファイルが処理されるときに、その文字列はキーストアの別名として扱われます。キーストアは別名を経由して X509 証明書を調査し、問い合わせます。その証明書が見つかった場合、主体のタイプは javax.security.auth.x500.X500Principal であると自動的に想定され、実際の主体の名前は、証明書にある Subject として識別された名前であると想定されます。X509 証明書へのマッピングが見つからない場合は、指定された主体に対してアクセス権を許可しているポリシーエントリ全体が無視されます。
新しい主体の追加
新しい主体を追加するには、「ポリシーエントリ」ダイアログボックスで 「主体の追加」 ボタンを選択します。「主体」ダイアログボックスが表示されます。
主体を追加するには、次のようにします。
主体の情報を指定したら、「了解」 ボタンを選択します。操作を取り消す場合は、「取消し」 を選択します。新しい主体の行が「主体」エントリに表示されます。
- 主体のタイプを入力するか、または選択します。
「主体のタイプ」というラベルの付いたドロップダウンリストには、組み込まれている主体のタイプのリストが表示されます。リストにあるタイプを指定する場合は、リストからそのタイプを選択します。選択した主体のタイプの完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。
ユーザが定義した主体のタイプを指定する場合は、その主体のタイプをテキストボックスに入力します。
- 主体の名前を入力します。
主体の名前を、「主体の名前」テキストボックスに直接入力します。たとえば、
duke
という名前の主体を指定するには、次のように入力します。duke
主体の編集
既存の主体を編集するには、「主体」エントリで主体の行を選択し、「主体の編集」 ボタンを選択します。または、その主体の行をダブルクリックするだけでも、主体を編集できるようになります。新しいアクセス権を追加するときと同じ「主体」ダイアログボックスが表示されます。ただし、この場合は、既存のアクセス権の情報が表示されています。表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。
編集が終わったら、「了解」 ボタンを選択します。変更を取り消す場合は、「取消し」 を選択します。「主体」エントリに、修正後の主体の情報が表示されます。
主体の削除
既存の主体を削除するには、「主体」エントリでその主体の行を選択し、「主体の削除」 ボタンを選択します。新しいアクセス権の追加
新しいアクセス権を追加するには、「ポリシーエントリ」ダイアログボックスで 「アクセス権の追加」 ボタンを選択します。「アクセス権」ダイアログボックスが表示されます。
アクセス権を追加するには、次のようにします。
アクセス権の情報を指定したら、「了解」 ボタンを選択します。操作を取り消す場合は、「取消し」 を選択します。新しいアクセス権の行が「ポリシーエントリ」ダイアログに表示されます。
- アクセス権のタイプを入力するか、または選択します。
「アクセス権」というラベルの付いたドロップダウンリストには、組み込まれているアクセス権のタイプのリストが表示されます。リストにあるタイプを指定する場合は、リストからそのタイプを選択します。選択したアクセス権のタイプの完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。
ユーザが定義したアクセス権のタイプを指定する場合は、そのアクセス権のタイプをテキストボックスに入力します。
- アクセス権のターゲット名を入力するか、または選択します。
「アクセス権」ドロップダウンリストから組み込みのアクセス権を選択した場合、そのタイプのアクセス権に特定のターゲット名の値があるときは、「ターゲット名」というラベルの付いたドロップダウンリストにその値のリストが表示されるので、そのリストから値を選択します。
ターゲット名の選択肢が無限にある場合でも、特別な意味を持つ組み込みのターゲット名があるときは、そのようなターゲット名がドロップダウンリストに表示されます。たとえば、「FilePermission」の場合のリストには、特別なターゲット名として「<<All FILES>>」が表示されます。
ドロップダウンリストにないターゲット名を指定するには、「ターゲット名」ドロップダウンリストの右側のテキストボックスにターゲット名を直接入力します。たとえば、
D:
ドライブのJavaSoft\ptTest\
ディレクトリにあるdata
という名前のファイルを指定するには、次のように入力します。D:\JavaSoft\ptTest\data
- アクションを指定する必要がある場合は、1 つ以上のアクションを入力するか、または選択します。
一部のアクセス権は、ターゲット名だけを持ち、アクションを持っていません。このようなアクセス権では、「アクション」ドロップダウンリストの右側のテキストボックスを空白のままにしておきます。そのアクセス権が組み込みのアクセス権の場合は、テキストボックスが自動的に淡色表示になり、利用できなくなります。
アクションの指定が必要なアクセス権の場合は、コンマで区切ったアクションのリストをテキストボックスに入力するか、またはドロップダウンリストからアクションを選択します。たとえば、「FilePermission」に指定されたファイルに対して読み込みと書き込みの両方のアクセス権を指定するには、まずリストから「
read
」(または「write
」。順序は任意) を選択します。テキストボックスに「read」と表示されます。次に、「write
」を選択します。コンマとスペースが入力され、そのあとに「write」と表示されます。
- 必要に応じて、「署名者」ラベルの右側のテキストボックスに SignedBy 別名を入力します。アクセス権エントリでは、SignedBy の値は省略可能です。この値が存在する場合は、署名付きアクセス権であることを示します。つまり、そのアクセス権を与えられるようにするためには、アクセス権クラスそれ自体が、指定された別名によって署名されていなければなりません。
アクセス権の編集
既存のアクセス権を編集するには、「ポリシーエントリ」ダイアログボックスでアクセス権の行を選択し、「アクセス権の編集」 ボタンを選択します。または、アクセス権の行をダブルクリックするだけでも、そのアクセス権を編集できるようになります。新しいアクセス権を追加するときと同じ「アクセス権」ダイアログボックスが表示されます。ただし、この場合は、既存のアクセス権の情報が表示されています。表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。
編集が終わったら、「了解」 ボタンを選択します。変更を取り消す場合は、「取消し」 を選択します。「ポリシーエントリ」ダイアログボックスに、修正後のアクセス権の情報が表示されます。
アクセス権の削除
既存のアクセス権を削除するには、「ポリシーエントリ」ダイアログボックスでそのアクセス権の行を選択し、「アクセス権の削除」 ボタンを選択します。ポリシーエントリの追加の完了
ポリシーエントリの追加が終わったら、「ポリシーエントリ」ダイアログボックスの 「完了」 ボタンを選択します。操作を取り消す場合は、「取消し」 を選択します。「完了」 を選択すると、これまでの操作で設定されたポリシーエントリを表す行が「Policy Tool」ウィンドウに表示されます。この行には、CodeBase、SignedBy、および主体の情報 (存在する場合) が含まれています。「ポリシーエントリ」ダイアログボックスで、どの情報も指定しなかった場合は、
CodeBase <ALL>とだけ表示されます。注: キーストアにまだ存在していない SignedBy 別名がポリシーエントリに含まれている場合は、ポリシーエントリを閉じる時点で警告が表示されます。この場合は、「了解」 を選択し、該当する別名をあとで作成します。別名の指定に誤りがある場合は、ポリシーエントリを編集して、別名を修正します。
ポリシーエントリの編集
既存のポリシーエントリを編集するには、「Policy Tool」メインウィンドウでそのエントリの行を選択し、「ポリシーエントリの編集」 ボタンを選択します。または、エントリの行をダブルクリックするだけでも、そのエントリが編集できるようになります。新しいポリシーエントリを追加するときと同じ「ポリシーエントリ」ダイアログボックスが表示されます。ただし、この場合は、既存のポリシーエントリの情報が表示されています。表示されている情報を変更するには、CodeBase と SignedBy の値の場合は、必要な直接入力し、主体とアクセス権の値の場合は、ボタンを使用して情報を変更します。
編集が終わったら、「完了」 ボタンを選択します。操作を取り消す場合は、「取消し」 を選択します。
ポリシーエントリの削除
ポリシーファイルからポリシーエントリを削除するには、「Policy Tool」メインウィンドウでそのエントリの行を選択し、「ポリシーエントリの削除」 ボタンを選択します。選択したポリシーエントリ全体が表示されます。このエントリを削除するには 「了解」 を選択し、このエントリを削除しない場合は 「取消し」 を選択します。
ポリシーファイルの保存
既存のポリシーファイルに対する変更内容を保存するには、「ファイル」 メニューの 「保存」 コマンドを選択します。
作成した新しいポリシーファイルを保存したり、既存のポリシーファイルを新しい名前のポリシーファイルにコピーしたりするには、「ファイル」 メニューの 「別名保存」 コマンドを選択します。「別名保存」ダイアログボックスが表示されます。
ディレクトリ構造を移動して、ポリシーファイルの保存先のディレクトリを選択します。ファイル名を入力し、「保存」 ボタンを選択します。ポリシーファイルが保存され、そのファイルの名前とパスが、「ポリシーファイル」というラベルの付いたテキストボックスに表示されます。
Policy Tool の終了
Policy Tool を終了するには、「ファイル」 メニューの 「終了」 コマンドを選択します。警告ログの表示
Policy Tool が、警告を警告ログに保存したというメッセージを表示した場合は、「ファイル」 メニューの 「警告ログの表示」 コマンドを選択すれば、警告ログを表示できます。たとえば、ポリシーファイルでキーストアの URL を指定していて、このキーストアがまだ存在していない場合は、ファイルを開くときなど、さまざなな場面で警告が表示されます。警告が存在する場合でも、ポリシーファイルの作業は続行できます。
ファイル仕様に関する注記
注: Microsoft Windows システムでは、ファイル名とパスを Policy Tool のダイアログボックスに入力するとき (ファイルアクセス権のターゲット名を入力するときなど)、ディレクトリの区切り文字として次のどれかを使用できます。
単一の円記号は、Windows での通常のディレクトリ区切り文字です。スラッシュも同様に使用できます。
- 単一の円記号 (例:
D:\Temp\data
)- 二重の円記号 (例:
D:\\Temp\\data
)- スラッシュ (例:
D:/Temp/data
)ただし、ポリシーファイルそのものでは、単一の円記号を使用できません。ポリシーファイルが読み込まれるとき、文字列はトークナイザによって処理され、「\」はエスケープ文字列として使用されます。たとえば、「\n」は改行を表します。このため、1 つの円記号を表す場合は、二重の円記号を指定する必要があります。
区切り文字として単一の円記号を使用した場合、Policy Tool は自動的にそれを二重の円記号に変換します。たとえば、「アクセス権」ダイアログボックスで 「了解」 を選択したあとに、その変換が行われます。
Microsoft Windows の「ホーム」ディレクトリに関する注記
ユーザポリシーファイルは、デフォルトでは、user.home システムプロパティの値によって決まる「ホームディレクトリ」内の、.java.policy
という名前のファイルです。ユーザ名が uName の場合、user.home プロパティの値は、デフォルトでは次のように設定されます。C:\Winnt\Profiles\uName on multi-user Windows NT systems C:\Windows\Profiles\uName on multi-user Windows 95 systems C:\Windows on single-user Windows 95 systemsしたがって、ユーザ名が「cathy」の場合、user.home のデフォルトは次のようになります。C:\Winnt\Profiles\cathy on multi-user Windows NT systems C:\Windows\Profiles\cathy on multi-user Windows 95 systems C:\Windows on single-user Windows 95 systems
このあと紹介する例では、次の操作を実行する方法を説明します。
- 新しいユーザポリシーファイルを作成する
- ポリシーエントリを追加する
- キーストアを指定する
- 署名されたコードのためのポリシーエントリを追加する
- 認証されたコードのためのポリシーエントリを追加する
- ユーザポリシーファイルを保存する
- Policy Tool を終了する
ユーザポリシーファイルの作成の開始
初期状態では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。ユーザポリシーファイルを作成するには、コマンド行に次のように入力して Policy Tool を起動します。
policytool「Policy Tool」ウィンドウが表示されます。
Policy Tool は、起動するたびに、「ユーザポリシーファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。デフォルトのユーザポリシーファイルは、ホームディレクトリにある
.java.policy
という名前のファイルです。ポリシーファイルが見つからない場合は、そのことを示すメッセージと空白の「Policy Tool」ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません (次の画面を参照)。
このウィンドウでエントリを追加してファイルを保存すれば、ユーザポリシーファイルを作成できます。
ポリシーエントリの追加
ここでは、D:
ドライブのTests\
ディレクトリにあるすべてのクラスに対して、D:\Temp\data\
ディレクトリ内のmydata
という名前のファイルを読み取るアクセス権を許可するとします。この場合は、まず、「Policy Tool」メインウィンドウで 「ポリシーエントリの追加」 ボタンを選択します。「ポリシーエントリ」ダイアログボックスが表示されます。
このダイアログボックスでは、
file:/D:/tests/という URL を 「CodeBase」 テキストボックスに入力します。注: これは URL なので、円記号ではなくスラッシュを使う必要があります。コードに署名がなされている必要はないので、「SignedBy」 テキストボックスは空白のままにします。
コードが認証されている必要はないので、「主体」 テキストボックスは空白のままにします。
アクセス権を追加するために、「アクセス権の追加」 ボタンを選択します。「アクセス権」ダイアログボックスが表示されます。
アクセス権を追加するには、次のようにします。
ここまでの操作で、「アクセス権」ダイアログボックスには、次のように表示されています。
- 「アクセス権」ドロップダウンリストから「FilePermission」を選択します。アクセス権のタイプの完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- 「ターゲット名」というラベルの付いたリストの右側のテキストボックスに、次のように入力します。
D:\temp\data\mydata- 読み取りアクセス権を指定するために、「アクション」ドロップダウンリストから「read」を選択するか、または「アクション」ドロップダウンリストの右側のテキストボックスに「read」と直接入力します。
アクセス権の情報を指定したら、「了解」 ボタンを選択します。新しいアクセス権の行が「ポリシーエントリ」ダイアログに表示されます。
注: 入力したファイルパスの円記号は、「ファイル仕様に関する注記」で説明したように、それぞれ二重の円記号に置き換えられます。
これで、このポリシーエントリの指定は終わりです。「完了」 ボタンを選択します。ここで指定したポリシーエントリを表す行が「Policy Tool」ウィンドウに表示されます。この行には CodeBase の値だけが含まれています。
キーストアの指定
ここでは、「http://java.sun.com/」という URL にあるコードのうち、別名「duke」の署名者によって署名された任意のコードに対して、D:\tmp\
ディレクトリ内のすべてのファイルへの読み取りアクセス権を許可するとします。さらに、これらのコードに、任意のホストに対する送信ソケット接続を開始できるアクセス権も許可するとします。この場合は、次の 2 つの操作を行う必要があります。ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、「Policy Tool」メインウィンドウで 「編集」メニューの「キーストアの変更」コマンドを選択します。
- 必要な別名の入ったキーストアを指定する
- 必要なアクセス権を許可するためのポリシーエントリを作成する
ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアのタイプ (省略可能) を指定します。
たとえば、
D:
ドライブのtests
ディレクトリにある「mykeystore」という名前のキーストアを指定するには、「新規キーストアの URL」というラベルの付いたテキストボックスに、次のようにfile:
URL を入力します。file:/D:/tests/mykeystoreキーストアのタイプが、セキュリティプロパティファイル内の keystore.type プロパティの値により指定されたデフォルトのタイプの場合は、「新規キーストアのタイプ」の値を入力する必要はありません。このプロパティのデフォルトの値は、「JKS」(Sun がサポートする独自のキーストアのタイプ) です。キーストアのタイプを指定するには、「新規キーストアのタイプ」というラベルの付いたテキストボックスに値を入力します。たとえば、キーストアのタイプが「JKS」であることを示すには、次のように入力します。
JKSダイアログボックスには、次のように表示されます。
注: 「新規キーストアの URL」の値は URL であるため、キーストアが Microsoft Windows システム上にあるときでも、ディレクトリの区切り文字には常にスラッシュを使い、円記号は使いません。
キーストアの URL とタイプを指定したら、「了解」 を選択します。「キーストア」というラベルの付いたテキストボックスに、ここで指定した URL とタイプが表示されます。
次に、ポリシーエントリを指定する必要があります。
SignedBy 別名を指定したポリシーエントリの追加
「Policy Tool」メインウィンドウで 「ポリシーエントリの追加」 ボタンを選択します。「ポリシーエントリ」ダイアログボックスが表示されます。「CodeBase」 テキストボックスに、次のように入力します。http://java.sun.com/*「*」は、この CodeBase が指定したディレクトリ内のクラスファイルと JAR ファイルの両方を示すことを意味します。「SignedBy」 テキストボックスには、次の別名を入力します。
dukeコードが認証されている必要はないので、「主体」 テキストボックスは空白のままにします。
指定する 2 つのアクセス権のうち、最初のアクセス権を追加するために、「アクセス権の追加」 ボタンを選択します。「アクセス権」ダイアログボックスが表示されます。次のように操作します。
「アクセス権」ダイアログボックスには、次のように表示されます。
- 「アクセス権」ドロップダウンリストから「FilePermission」を選択します。アクセス権のタイプの完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- 「ターゲット名」というラベルの付いたリストの右側のテキストボックスに、次のように入力して、
D:\tmp\
ディレクトリ内のすべてのファイルを指定します。D:\tmp\*- 読み取りアクセス権を指定するために、「アクション」ドロップダウンリストから「read」を選択します。
「了解」 ボタンを選択します。新しいアクセス権の行が「ポリシーエントリ」ダイアログに表示されます。
次に、2 つ目のアクセス権を指定する必要があります。「アクセス権の追加」 ボタンを選択します。「アクセス権」ダイアログボックスで、次のように操作します。
「アクセス権」ダイアログボックスには、次のように表示されます。
- 「アクセス権」ドロップダウンリストから「SocketPermission」を選択します。アクセス権のタイプの完全な名前 (java.net.SocketPermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- 「ターゲット名」というラベルの付いたリストの右側のテキストボックスに、次のように入力して、すべてのホストを指定します。
*- 接続を行う許可を指定するために、「アクション」ドロップダウンリストから「connect」を選択します。
「了解」 ボタンを選択します。新しいアクセス権の行が「ポリシーエントリ」ダイアログに表示されます。
注: 入力したファイルパスの円記号は、「ファイル仕様に関する注記」で説明したように、それぞれ二重の円記号に置き換えられます。
これで、ポリシーエントリの指定は終わりです。「ポリシーエントリ」ダイアログの 「完了」 ボタンを選択します。「Policy Tool」ウィンドウに、指定した CodeBase、SignedBy、および主体の値を含むポリシーエントリの行が表示されます。
主体を指定したポリシーエントリの追加
ここでは、次のような X500 名を持つ主体にアクセス権を許可するとします。
この主体に、CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US/tmp/
ディレクトリに対する書き込みを許可します。「Policy Tool」メインウィンドウで 「ポリシーエントリの追加」 ボタンを選択します。「ポリシーエントリ」ダイアログボックスが表示されます。
コードの出所は制限しないので、「CodeBase」 テキストボックスは空白のままにします。コードに署名がなされている必要はないので、「SignedBy」 テキストボックスは空白のままにします。
「主体の追加」 ボタンを選択します。「主体」ダイアログボックスで、次のように操作します。
「主体」ダイアログボックスには、次のように表示されます。
- 「主体のタイプ」ドロップダウンリストから「X500Principal」を選択します。主体のタイプの完全な名前 (javax.security.auth.x500.X500Principal) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- 「主体の名前」というラベルの付いたリストの右側のテキストボックスに、次のように入力して、X500Principal の X500 名を指定します。
CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
「了解」 ボタンを選択します。新しい主体の行が「主体」リストに表示されます。
アクセス権を追加するために、「アクセス権の追加」 ボタンを選択します。「アクセス権」ダイアログボックスが表示されます。次のように操作します。
- 「アクセス権」ドロップダウンリストから「FilePermission」を選択します。アクセス権のタイプの完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。
- 「ターゲット名」というラベルの付いたリストの右側のテキストボックスに、次のように入力して、
D:
ドライブのtmp/
ディレクトリ内のすべてのファイルを指定します。D:\tmp\*- 書き込みアクセス権を指定するために、「アクション」ドロップダウンリストから「write」を選択します。
「了解」 ボタンを選択します。新しいアクセス権の行が「ポリシーエントリ」ダイアログに表示されます。
これで、ポリシーエントリの指定は終わりです。「ポリシーエントリ」ダイアログの 「完了」 ボタンを選択します。「Policy Tool」ウィンドウに、指定した CodeBase、SignedBy、および主体の値を含むポリシーエントリの行が表示されます。
ユーザポリシーファイルの保存
ここでは、Windows95 システムを使用していて、作成したポリシーファイルをデフォルトの場所 (C:\Windows\
) にデフォルトの名前 (.java.policy) で保存するとします。作成したユーザポリシーファイルを保存するために、「ファイル」 メニューの 「別名保存」 コマンドを選択します。「別名保存」ダイアログボックスが表示されます。
C:
ドライブのWindows
ディレクトリに移動し、次のようなファイル名を入力します。.java.policy先頭にピリオドがあることに注意してください。そのあと、「保存」 ボタンを選択します。ポリシーファイルが保存され、そのファイルの名前とパスが、「ポリシーファイル」というラベルの付いたテキストボックスに表示されます。
Policy Tool の終了
Policy Tool を終了するには、「ファイル」 メニューの 「終了」 コマンドを選択します。
- Java 2 プラットフォームにおけるアクセス権
- デフォルトのポリシーの実装とポリシーファイルの構文
- keytool ツールのドキュメント
- セキュリティアーキテクチャの仕様
- Policy Tool を含むセキュリティツールの使用例については、「Java チュートリアル」の「Security」を参照してください。
Copyright © 2002 Sun Microsystems, Inc.All Rights Reserved. |
Java ソフトウェア |