Policy Tool -

ポリシーファイル作成および管理ツール

インストールしたシステムの Java セキュリティポリシーを定義する、外部ポリシー構成ファイルの作成と修正を行います。

目次

はじめに

Policy Tool の使用法
Policy Tool の起動
新しいポリシーファイルの作成
ほかのポリシーファイルのオープン
キーストアの指定
新しいポリシーエントリの追加
新しいプリンシパルの追加
プリンシパルの編集
プリンシパルの削除
新しいアクセス権の追加
アクセス権の編集
アクセス権の削除
ポリシーエントリの追加の完了
ポリシーエントリの編集
ポリシーエントリの削除
ポリシーファイルの保存
Policy Tool の終了
警告ログの表示

例
ユーザポリシーファイルの作成の開始
ポリシーエントリの追加
キーストアの指定
SignedBy 別名を指定したポリシーエントリの追加
プリンシパルを指定したポリシーエントリの追加
ユーザポリシーファイルの保存
Policy Tool の終了

関連項目

はじめに

Java 実行時のポリシーは、さまざまなソースを出所とするコードが、さまざまなプリンシパルとして実行されるときに、どのようなアクセス権を利用できるかを指定するもので、Policy オブジェクトによって表現されます。 デフォルトの Policy の実装は、静的な ASCII 形式のポリシー構成ファイルから情報を取得します。

ポリシーファイルは、簡単なテキストエディタを使用するか、このドキュメントで説明するグラフィカルな Policy Tool ユーティリティを使用して作成できます。 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 をはじめて実行した時点では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。

新しいポリシーファイルの作成

新しいポリシーファイルを作成するには、[File] メニューから [New] コマンドを選択します。 現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられて、新しい [Policy Tool] ウィンドウが表示されます。そのウィンドウには見出しやボタンが表示されていますが、データは含まれていません。

注: 上記の操作は、Policy Tool をはじめて実行する場合は必要ありません。 Policy Tool はユーザポリシーファイルを開こうとしますが、そのファイルがまだ存在しないため (手動で作成した場合を除く)、データが何も含まれていないウィンドウが表示されます。

新しい [Policy Tool] ウィンドウが表示されたら、ポリシーエントリを作成したり、キーストアを指定したり (キーストア別名を指定したポリシーエントリがある場合) することができます。 ポリシーファイルは、いつでも保存できます。

ほかのポリシーファイルのオープン

現在作業中のポリシーファイルとは別のポリシーファイルで作業するには、[File] メニューの [Open] コマンドを使います。

現在開かれているポリシーファイルがあれば、必要に応じてファイルの保存を促すメッセージが表示されたあとで、そのファイルが閉じられ、[Open] ダイアログが表示されます。このダイアログでは、ディレクトリ構造を移動して、作業するポリシーファイルがあるディレクトリを検索できます。 ファイルを選択し、[OK] ボタンを選択します。

選択したポリシーファイルの情報が [Policy Tool] ウィンドウに表示されます。表示される情報は、ポリシーファイル名、キーストアの URL (存在する場合)、そしてポリシーファイル内の各ポリシーエントリの CodeBase、SignedBy、および Principal パートです。

キーストアの指定

ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、[Edit] メニューの [Change KeyStore] コマンドを選択します。

ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアの型 (省略可能) を指定します。

たとえば、/tests/ ディレクトリにある mykeystore という名前のキーストアを指定するには、[New KeyStore URL] というラベルの付いたテキストボックスに、次のように file: URL を入力します。

  file:/tests/mykeystore
また、キーストアの型として JKS (Sun がサポートしている独自のキーストアの型) を指定するには、[New KeyStore Type] というラベルの付いたテキストボックスに、次のように入力します。
  JKS

キーストアの URL と、必要に応じて型を指定したら、[OK] を選択します。操作を取り消す場合は、[Cancel] を選択します。 操作を取り消さなかった場合は、[Keystore:] というラベルの付いたテキストボックスに、指定したキーストアの URL とタイプが表示されます。

新しいポリシーエントリの追加

新しいポリシーエントリを追加するには、[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。

[Policy Entry] ダイアログボックスが表示されます。

空白の [Policy Entry] ダイアログ

このダイアログボックスでは、次の情報を指定します。

SignedBy の値は、署名者に関連付けられた一式の公開鍵に、キーストアを使ってマッピングされる別名の文字列です。 これらの公開鍵は、指定されたコードソースからのクラスが、実際にこれらの署名者によって署名されていることを検証するために使われます。

SignedBy の値には、複数の署名者をコンマで区切った文字列を指定できます。たとえば、「Adam,Eve,Charles」のように指定します。この場合は、各要素が OR ではなく AND で結合され、「Adam と Eve と Charles によって署名された」という意味になります。

SignedBy の値は省略できます。省略した場合は、「任意の署名者」という意味になり、コードに署名がなされているかどうかが検証されなくなります。 同様に、CodeBase エントリを省略した場合は、「任意のコード」という意味になり、コードの出所が検証されなくなります。

したがって、CodeBase エントリが存在しない場合は、指定された別名の署名者によって署名されたすべてのコードに対して、指定されたアクセス権が許可されます。 また、SignedBy エントリが存在しない場合は、コードに署名がなされているかどうか、まただれが署名したかには関係なく、指定された CodeBase を出所とするすべてのコードに対して、指定されたアクセス権が許可されます。 CodeBase エントリと SignedBy エントリがどちらも存在しない場合は、すべてのコードに対して、指定されたアクセス権が許可されます。

注: CodeBase 値の正確な意味は、末尾の文字によって異なります。 末尾が「/」の CodeBase は、指定されたディレクトリ内のすべてのクラスファイル (JAR ファイルを除く) を示します。 末尾が「/*」の CodeBase は、そのディレクトリ内にあるすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。 末尾が「/-」の CodeBase は、指定されたディレクトリとその下の全サブディレクトリ内のすべてのファイル (クラスファイルと JAR ファイルの両方) を示します。

[Principals] エントリには、「プリンシパルの値」のリストを指定します。 それぞれのプリンシパルの値には、実行しているスレッドのプリンシパルセット内に存在していなければならない principal_type と principal_name のペアを指定します。 [Principals] エントリは省略可能です。省略した場合は、「任意のプリンシパル」という意味になります。

principal_type が指定されておらず、principal_name が引用符で囲まれた文字列である場合は、実行時にポリシーファイルが処理されるときに、その文字列はキーストアの別名として扱われます。 キーストアへは別名を経由して X509 証明書の調査または問い合わせがおこなわれます。 その証明書が見つかった場合、プリンシパルの型は javax.security.auth.x500.X500Principal であると自動的に想定され、実際のプリンシパルの名前は、証明書にある被認証者として識別された名前であると想定されます。 X509 証明書へのマッピングが見つからない場合は、指定されたプリンシパルに対してアクセス権を許可しているポリシーエントリ全体が無視されます。

新しいプリンシパルの追加

新しいプリンシパルを追加するには、[Policy Entry] ダイアログボックスで [Add Principal] ボタンを選択します。 [Principals] ダイアログボックスが表示されます。

空白の [Principals] ダイアログ

プリンシパルを追加するには、次のようにします。

  1. プリンシパルの型を入力するか、または選択します。

    [Principal Type:] というラベルの付いたドロップダウンリストは、組み込みアクセス権型のリストを含んでいます。 リストにある型を指定する場合は、リストからその型を選択します。選択したプリンシパルの型の完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。

    ユーザが定義したプリンシパルの型を指定する場合は、そのプリンシパルの型をテキストボックスに入力します。

  2. プリンシパルの名前を入力します。

    プリンシパルの名前を、[Principal Name:] テキストボックスに直接入力します。 text box. たとえば、duke という名前のプリンシパルを指定するには、次のように入力します。

    duke
    

プリンシパルの情報を指定したら、[OK] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。 新しいプリンシパルの行が [Principals] エントリに表示されます。

このあと、同じ手順に従って別のプリンシパルを追加することができます。 既存のプリンシパルを編集または削除することもできます。

プリンシパルの編集

既存のプリンシパルを編集するには、その [Principals:] エントリのプリンシパルの行を選択し、 [Edit Principal] ボタンを選択します。 または、そのプリンシパルの行をダブルクリックするだけでも、プリンシパルを編集できます。

新しいプリンシパルを追加するときと同じ [Principals] ダイアログボックスが表示されます。ただし、この場合は、既存のプリンシパルの情報が表示されています。 表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。

編集が終わったら、[OK] ボタンを選択します。変更を取り消す場合は、[Cancel] を選択します。 [Principals:] エントリに、修正後のプリンシパルの情報が表示されます。

プリンシパルの削除

既存のプリンシパルを削除するには、その [Principals:] エントリのプリンシパルの行を選択し、 [Remove Principal] ボタンを選択します。

新しいアクセス権の追加

新しいアクセス権を追加するには、[Policy Entry] ダイアログボックスで [Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。

空白の [Permissions] ダイアログ

アクセス権を追加するには、次のようにします。

  1. アクセス権の型を入力するか、または選択します。

    [Permission:] というラベルの付いたドロップダウンリストは、組み込みアクセス権型のリストを含んでいます。 リストにある型を指定する場合は、リストからその型を選択します。選択したアクセス権の型の完全な名前が、ドロップダウンリストの右側のテキストボックスに表示されます。

    ユーザが定義したアクセス権の型を指定する場合は、そのアクセス権の型をテキストボックスに入力します。

  2. アクセス権のターゲット名を入力するか、または選択します。

    [Permission:] ドロップダウンリストで組み込みアクセス権を選択した場合、そのアクセス権型で、特定のターゲット名の値が必要になるときは、[Target Name:] というラベルの付いたドロップダウンリストに含まれる値のリストから、目的の値を選択します。

    ターゲット名の選択肢が無限にある場合でも、特別な意味を持つ組み込みのターゲット名があるときは、そのようなターゲット名がドロップダウンリストに表示されます。 たとえば、「File Permission」の場合のリストには、特別なターゲット名として「<<All Files>>」が表示されます。

    ドロップダウンリストにないターゲット名を指定するには、[Target Name:] ドロップダウンリストの右側のテキストボックスにターゲット名を直接入力します。 たとえば、/JavaSoft/ptTest/ ディレクトリ内の data という名前のファイルを指定するには、次のように入力します。

      /JavaSoft/ptTest/data
    

  3. アクションを指定する必要がある場合は、1 つ以上のアクションを入力するか、または選択します。

    一部のアクセス権は、ターゲット名だけを持ち、アクションを持っていません。 このようなアクセス権では、[Actions:] ドロップダウンリストの右側のテキストボックスを空白のままにしておきます。 そのアクセス権が組み込みのアクセス権の場合は、テキストボックスが自動的に淡色表示になり、利用できなくなります。

    アクションの指定が必要なアクセス権の場合は、コンマで区切ったアクションのリストをテキストボックスに入力するか、またはドロップダウンリストからアクションを選択します。 たとえば、「File Permission」に指定されたファイルに対して読み込みと書き込みの両方のアクセス権を指定するには、まずリストから [read] (または [write]。順序は任意) を選択します。 テキストボックスに「read」と表示されます。 次に、[write] を選択します。コンマとスペースが入力され、そのあとに「write」と表示されます。

  4. 必要に応じて、[SignedBy] ラベルの右側のテキストボックスに SignedBy 別名を入力します。 アクセス権エントリでは、SignedBy の値は省略可能です。 この値が存在する場合は、署名付きアクセス権であることを示します。 つまり、そのアクセス権を与えることができるためには、アクセス権クラスそれ自体が、指定された別名によって署名されていなければなりません。
アクセス権の情報を指定したら、[OK] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。

このあと、同じ手順に従ってアクセス権を追加することができます。 既存のアクセス権を編集または削除することもできます。

アクセス権の編集

既存のアクセス権を編集するには、[Policy Entry] ダイアログボックスでアクセス権の行を選択し、[Edit Permission] ボタンを選択します。 または、アクセス権の行をダブルクリックするだけでも、そのアクセス権を編集できます。

新しいアクセス権を追加するときと同じ [Permissions] ダイアログボックスが表示されます。ただし、この場合は、既存のアクセス権の情報が表示されています。 表示されている情報を変更するには、ドロップダウンリストから新しい値を選択するか、またはテキストボックスの情報を新しい値で置き換えます。

編集が終わったら、[OK] ボタンを選択します。変更を取り消す場合は、[Cancel] を選択します。 [Policy Entry] ダイアログボックスに、修正後のアクセス権の情報が表示されます。

アクセス権の削除

既存のアクセス権を削除するには、[Policy Entry] ダイアログボックスでそのアクセス権の行を選択し、[Remove Permission] ボタンを選択します。

ポリシーエントリの追加の完了

ポリシーエントリの追加が終わったら、[Policy Entry] ダイアログボックスの [Done] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。

[Done] を選択すると、これまでの操作で設定されたポリシーエントリを表す行が [Policy Tool] ウィンドウに表示されます。 この行には、CodeBase、SignedBy、および Principals の情報 (存在する場合) が含まれています。 [Policy Entry] ダイアログボックスで、どの情報も指定しなかった場合は、次のように表示されます。

  CodeBase <ALL>

注: キーストアにまだ存在していない SignedBy 別名がポリシーエントリに含まれている場合は、ポリシーエントリを閉じる時点で警告が表示されます。 この場合は、[OK] を選択し、該当する別名をあとで作成します。別名の指定に誤りがある場合は、ポリシーエントリを編集して、別名を修正します。

ポリシーエントリの編集

既存のポリシーエントリを編集するには、[Policy Tool] メインウィンドウでそのエントリの行を選択し、[Edit Policy Entry] ボタンを選択します。 または、エントリの行をダブルクリックするだけでも、そのエントリが編集できます。

新しいポリシーエントリを追加するときと同じ [Policy Entry] ダイアログボックスが表示されます。ただし、この場合は、既存のポリシーエントリの情報が表示されています。 表示されている情報を変更するには、CodeBase と SignedBy の値の場合は、必要な直接入力し、Principals と Permissions の値の場合は、ボタンを使用して情報を変更します。

編集が終わったら、[Done] ボタンを選択します。操作を取り消す場合は、[Cancel] を選択します。

ポリシーエントリの削除

ポリシーファイルからポリシーエントリを削除するには、[Policy Tool] メインウィンドウでそのエントリの行を選択し、[Remove Policy Entry] ボタンを選択します。

選択したポリシーエントリ全体が表示されます。このエントリを削除するには [OK] を選択し、このエントリを削除しない場合は [Cancel] を選択します。

ポリシーファイルの保存

既存のポリシーファイルに対する変更内容を保存するには、[File] メニューの [Save] コマンドを選択します。

作成した新しいポリシーファイルを保存したり、既存のポリシーファイルを新しい名前のポリシーファイルにコピーしたりするには、[File] メニューの [Save As] コマンドを選択します。 [Save As] ダイアログボックスが表示されます。

ディレクトリ構造を移動して、ポリシーファイルの保存先のディレクトリを選択します。 ファイル名を入力し、[OK] ボタンを選択します。 ポリシーファイルが保存され、そのファイルの名前とパスが、[Policy File:] というラベルの付いたテキストボックスに表示されます。

Policy Tool の終了

Policy Tool を終了するには、[File] メニューの [Exit] コマンドを選択します。

警告ログの表示

Policy Tool が、警告を警告ログに保存したというメッセージを表示した場合は、[Edit] メニューの [View Warning Log] コマンドを選択すれば、警告ログを表示できます。

たとえば、ポリシーファイルでキーストアの URL を指定していて、このキーストアがまだ存在していない場合は、ファイルを開くときなど、あらゆる場面で警告が表示されます。 警告が存在する場合でも、ポリシーファイルの作業は続行できます。

例

このあと紹介する例では、次の操作を実行する方法を説明します。

ユーザポリシーファイルの作成の開始

初期状態では、ユーザポリシーファイルは存在していません (手動で作成した場合を除く)。 ユーザポリシーファイルを作成するには、コマンド行に次のように入力して Policy Tool を起動します。

  policytool

[Policy Tool] ウィンドウが表示されます。

Policy Tool は、起動するたびに、「ユーザポリシーファイル」とも呼ばれるファイルからポリシー情報を取得して、ウィンドウに表示しようとします。 デフォルトのユーザポリシーファイルは、ホームディレクトリにある .java.policy という名前のファイルです。 ポリシーファイルが見つからない場合は、そのことを示すメッセージと空白の [Policy Tool] ウィンドウが表示されます。つまり、ウィンドウに見出しやボタンは表示されますが、データは含まれていません (次の画面を参照)。

空白の [Policy Tool] ウィンドウ

このウィンドウでエントリを追加してファイルを保存すれば、ユーザポリシーファイルを作成できます。

ポリシーエントリの追加

たとえば、/tests/ ディレクトリからのすべてのクラスに対し、/temp/data/ ディレクトリ内の mydata という名前のファイルを読み取るアクセス権を許可するとします。 この場合は、まず、[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。

[Policy Entry] ダイアログボックスが表示されます。

空白の [Policy Entry] ダイアログ

このダイアログボックスでは、

  file:/tests/
という URL を [CodeBase] テキストボックスに入力します。

コードに署名がなされている必要はないので、[SignedBy] テキストボックスは空白のままにします。

コードが認証されている必要はないので、[Principals] テキストボックスは空白のままにします。

アクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。

空白の [Permissions] ダイアログ

アクセス権を追加するには、次のようにします。

  1. [Permission:] ドロップダウンリストから [File Permission] を選択します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。

  2. [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力します。
      /temp/data/mydata
    
  3. [Actions:] ドロップダウンリストから [read] を選択するか、または [Actions:] ドロップダウンリストの右側のテキストボックスに直接 「read」 と入力して、読み取りアクセスを指定します。ドロップダウンリストから [File Permission] を選択します。
ここまでの操作で、[Permission] ダイアログボックスには、次のように表示されています。

第 1 のファイルアクセス権

アクセス権の情報を指定したら、[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。

第 1 のポリシーエントリ

これで、このポリシーエントリの指定は終わりです。[Done] ボタンを選択します。 ここで指定したポリシーエントリを表す行が [Policy Tool] ウィンドウに表示されます。 この行には CodeBase の値だけが含まれています。

CodeBase が 1 つ指定されている [Policy Tool] ウィンドウ

キーストアの指定

たとえば、http://java.sun.com/ という URL からのコードのうち、別名「duke」の署名が付いたすべてのコードに対し、/tmp/ ディレクトリ内のすべてのファイルへの読み取りアクセス権を許可するとします。 さらに、これらのコードに、任意のホストに対する送信ソケット接続を開始できるアクセス権も許可するとします。 この場合は、次の 2 つの操作を行う必要があります。
  1. 必要な別名の入ったキーストアを指定する

  2. 必要なアクセス権を許可するためのポリシーエントリを作成する
ポリシーエントリの SignedBy パートで指定された別名の鍵情報を含むキーストアを指定するには、[Policy Tool] メインウィンドウで [Edit] メニューの [Change Keystore] コマンドを選択します。

ダイアログボックスが表示されたら、新しいキーストアの URL と、キーストアの型 (省略可能) を指定します。

たとえば、/tests/ ディレクトリにある mykeystore という名前のキーストアを指定するには、[New KeyStore URL] というラベルの付いたテキストボックスに、次のように file: URL と入力します。

  file:/tests/mykeystore
キーストアの型が、セキュリティプロパティファイル内の keystore.type プロパティの値により指定されたデフォルトの型の場合は、[New KeyStore Type] の値を入力する必要はありません。 このプロパティのデフォルトの値は、「JKS」(Sun がサポートする独自のキーストアの型) です。

キーストアの型を指定するには、[New KeyStore Type] というラベルの付いたテキストボックスに値を入力します。 たとえば、キーストアの型が「JKS」であることを示すには、次のように入力します。

  JKS
ダイアログボックスには、次のように表示されます。

Keystore

キーストアの URL と型を指定したら、[OK] を選択します。 [Keystore:] というラベルの付いたテキストボックスに、指定したキーストアの URL と型が表示されます。

次に、ポリシーエントリを指定する必要があります。

SignedBy 別名を指定したポリシーエントリの追加

[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。 [Policy Entry] ダイアログボックスが表示されます。 [CodeBase] テキストボックスに、次のように入力します。
  http://java.sun.com/*
「*」は、この CodeBase が指定したディレクトリ内のクラスファイルと JAR ファイルの両方を示すことを意味します。

[SignedBy] テキストボックスには、次の別名を入力します。

  duke

コードが認証されている必要はないので、[Principals] テキストボックスは空白のままにします。

指定する 2 つのアクセス権のうち、最初のアクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。 次のように操作します。

  1. [Permission:] ドロップダウンリストから [File Permission] を選択します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。

  2. [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力し、 /tmp/ ディレクトリ内のすべてのファイルを指定します。
      /tmp/*
    
  3. [Actions:] ドロップダウンリストから [read] を選択してアクセスを読み込むためのアクセス権を指定します。
[Permissions] ダイアログボックスには、次のように表示されます。

第 2 のファイルアクセス権

[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。

次に、2 つ目のアクセス権を指定する必要があります。 [Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスで、次のように操作します。

  1. [Permission:] ドロップダウンリストから [Socket Permission] を選択します。 アクセス権の型の完全な名前 (java.net.SocketPermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。

  2. [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力し、 すべてのホストを指定します。
      *
    
  3. [Actions:] ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。
[Permissions] ダイアログボックスには、次のように表示されます。

ソケット許可

[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。

アクセス権が 2 つ指定されている [Policy Entry] ウィンドウ

これで、ポリシーエントリの指定は終わりです。[Policy Entry] ダイアログの [Done] ボタンを選択します。 [Policy Tool] ウィンドウに、指定した CodeBase、SignedBy、および Principals の値を含むポリシーエントリの行が表示されます。

エントリが 2 つ指定されている [Policy Tool] ウィンドウ

プリンシパルを指定したポリシーエントリの追加

ここでは、次のような X500 名を持つプリンシパルにアクセス権を許可するとします。

CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
このプリンシパルに、/tmp/ ディレクトリに対する書き込みを許可します。

[Policy Tool] メインウィンドウで [Add Policy Entry] ボタンを選択します。 [Policy Entry] ダイアログボックスが表示されます。

コードの出所は制限しないので、[CodeBase] テキストボックスは空白のままにします。

コードに署名がなされている必要はないので、[SignedBy] テキストボックスは空白のままにします。

[Add Principal] ボタンを選択します。 [Principals] ダイアログボックスで、次のように操作します。

  1. [Principal Type:] ドロップダウンリストから [X500Principal] を選択します。ドロップダウンリストから [connect] を選択して接続を得るためのアクセス権を指定します。 プリンシパルの型の完全な名前 (com.sun.security.auth.X500Principal) が、ドロップダウンリストの右側のテキストボックスに表示されます。

  2. [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力し、 X500Principal に X500 名を指定します。
    CN=Duke,OU=JavaSoft,O=Sun Microsystems,C=US
    
[Principals] ダイアログボックスには、次のように表示されます。

X500Principal

[OK] ボタンを選択します。 新しいプリンシパルの行が [Principals] リストに表示されます。

プリンシパルが 1 つ指定されている [Policy Entry] ウィンドウ

アクセス権を追加するために、[Add Permission] ボタンを選択します。 [Permissions] ダイアログボックスが表示されます。 次のように操作します。

  1. [Permission:] ドロップダウンリストから [File Permission] を選択します。 アクセス権の型の完全な名前 (java.io.FilePermission) が、ドロップダウンリストの右側のテキストボックスに表示されます。

  2. [Target Name:] というラベルの付いたリストの右側のテキストボックスに、次のように入力し、 /tmp/ ディレクトリ内のすべてのファイルを指定します。
      /tmp/*
    
  3. [Actions:] ドロップダウンリストから [write] を選択し、書き込みアクセスを指定します。ドロップダウンリストから [File Permission] を選択します。

[OK] ボタンを選択します。 新しいアクセス権の行が [Policy Entry] ダイアログに表示されます。

プリンシパルとアクセス権が 1 つずつ指定されている [Policy Entry] ウィンドウ

これで、ポリシーエントリの指定は終わりです。[Policy Entry] ダイアログの [Done] ボタンを選択します。 [Policy Tool] ウィンドウに、指定した CodeBase、SignedBy、および Principals の値を含むポリシーエントリの行が表示されます。

エントリが 3 つ指定されている [Policy Tool] ウィンドウ

ユーザポリシーファイルの保存

作成したポリシーファイルを、デフォルトの場所 (ホームディレクトリ) にデフォルトの名前 (.java.policy) で保存するとします。

作成したユーザポリシーファイルを保存するために、[File] メニューの [Save As] コマンドを選択します。 [Save As] ダイアログボックスが表示されます。

ホームディレクトリまでディレクトリ構造を移動し、ファイル名を次のように入力します。 タイプ

  .java.policy
先頭にピリオドがあることに注意してください。[OK] ボタンを選択します。 ポリシーファイルが保存され、そのファイルの名前とパスが、[Policy File:] というラベルの付いたテキストボックスに表示されます。

3 つのエントリ、キーストア、およびポリシーファイル名が指定されている [Policy Tool] ウィンドウ

Policy Tool の終了

Policy Tool を終了するには、[File] メニューの [Exit] コマンドを選択します。

関連項目


Copyright © 2002 Sun Microsystems, Inc. All Rights Reserved.

Sun
Java ソフトウェア