Java プラットフォーム 1.2

java.security
クラス Policy

java.lang.Object
  |
  +--java.security.Policy

public abstract class Policy
extends Object

Java アプリケーション環境のシステムセキュリティポリシー (各種ソースのコードで利用できるアクセス権はどれかを指定する) を表す抽象クラスです。つまり、セキュリティポリシーは、この Policy クラスで abstract メソッドの実装を提供する Policy サブクラスによって表現されます。

有効になる Policy オブジェクトは常に 1 つだけです。保護ドメインがそのアクセス権セットを初期化する時に ProtectionDomain によって参照されます。

Policy オブジェクトが使うポリシー情報のソース位置は、Policy の実装に依存します。ポリシーの設定は、たとえば、フラット ASCII ファイル、Policy クラスの直列化されたバイナリファイル、データベースなどとして格納できます。

現在インストールされている Policy オブジェクトは、getPolicy メソッドを呼び出すことによって取得でき、setPolicy メソッドの呼び出しによって (Policy をリセットするアクセス権付きのコードで) 変更できます。

refresh メソッドにより、ポリシーオブジェクトの現在の設定がリフレッシュまたは再読み込みされます。この処理は実装に依存します。たとえば、ポリシーオブジェクトがそのポリシーを設定ファイルに格納する場合に refresh を呼び出すと、ポリシー設定ファイルが再読み込みされます。

保護ドメインがそのアクセス権セットを初期化する必要があるときは、適切なアクセス権を PermissionCollection オブジェクトに収容するよう、現在インストールされている Policy オブジェクトに要求する次のようなコードを実行します。

   policy = Policy.getPolicy();
   PermissionCollection perms = policy.getPermissions(MyCodeSource)
 

保護ドメインは CodeSource オブジェクトを渡します。このオブジェクトは、そのコードベース (URL) と公開鍵属性をカプセル化します。Policy オブジェクトは、グローバルポリシーを評価し、指定コードソースのコードで許可されているアクセス権を指定する、適切な Permissions オブジェクトを返します。

デフォルトの Policy 実装は、(Java セキュリティプロパティファイルの) policy.provider セキュリティプロパティに、希望する Policy 実装クラスの完全指定名を設定することによって変更できます。Java セキュリティプロパティファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されています。ただし、<JAVA_HOME> は JDK がインストールされているディレクトリを示します。

関連項目:
CodeSource, PermissionCollection

コンストラクタの概要
Policy()
           
 
メソッドの概要
abstract  PermissionCollection getPermissions(CodeSource codesource)
          グローバルポリシーを評価し、指定されたコードソースのコードで許可されているアクセス権のセットを指定する PermissionCollection オブジェクトを返します。
static Policy getPolicy()
          インストール済みの Policy オブジェクトを返します。
abstract  void refresh()
          ポリシー設定をリフレッシュまたは再読み込みします。
static void setPolicy(Policy policy)
          システム全体の Policy オブジェクトを設定します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

Policy

public Policy()
メソッドの詳細

getPolicy

public static Policy getPolicy()
インストール済みの Policy オブジェクトを返します。この値は setPolicy への呼び出しによって変更が可能なので、キャッシュしてはいけません。このメソッドはまず SecurityPermission("getPolicy") アクセス権を使って SecurityManager.checkPermission を呼び出して、Policy オブジェクトを取得してもかまわないかどうかを確認します。
戻り値:
インストール済みの Policy
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの checkPermission が Policy オブジェクトの取得を許可しないとき
関連項目:
SecurityManager.checkPermission(java.security.Permission)

setPolicy

public static void setPolicy(Policy policy)
システム全体の Policy オブジェクトを設定します。このメソッドはまず SecurityPermission("setPolicy") アクセス権を使って SecurityManager.checkPermission を呼び出して、Policy を設定してもかまわないかどうかを確認します。
パラメータ:
policy - 新しいシステム Policy オブジェクト
例外:
SecurityException - セキュリティマネージャが存在する場合に、セキュリティマネージャの checkPermission が Policy の設定を許可しないとき
関連項目:
SecurityManager.checkPermission(java.security.Permission)

getPermissions

public abstract PermissionCollection getPermissions(CodeSource codesource)
グローバルポリシーを評価し、指定されたコードソースのコードで許可されているアクセス権のセットを指定する PermissionCollection オブジェクトを返します。
パラメータ:
codesource - 呼び出し側に関連付けられている CodeSource。これは、コードの出所である元の位置と、その署名者の 1 つまたは複数の公開鍵をカプセル化する
戻り値:
ポリシーに基づいて codesource のコードで許可されているアクセス権のセット
例外:
SecurityException - 現在のスレッドがポリシーオブジェクトで getPermissions を呼び出すアクセス権を持たない場合

refresh

public abstract void refresh()
ポリシー設定をリフレッシュまたは再読み込みします。このメソッドの動作は実装に依存します。たとえば、ファイルの形式のポリシーに対して refresh を呼び出すと、ファイルが再読み込みされます。
例外:
SecurityException - 現在のスレッドがこの Policy オブジェクトをリフレッシュするアクセス権を持たない場合

Java プラットフォーム 1.2

バグや機能要求の報告
新しい javadoc の表示についてのコメントやご提案
Java は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-1998 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.