JavaTM 2 Platform
Std. Ed. v1.3

java.security
クラス Policy

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

public abstract class Policy
extends Object

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

常に有効な Policy オブジェクトは 1 つだけです。

アクセス権が特定の保護ドメインに割り当てられるかを、ローダが判別する必要があるとき、通常、Policy オブジェクトは SecureClassLoader などのオブジェクトで参照されます。SecureClassLoader は、現在インストールされている Policy object に PermissionCollection オブジェクトの生成を要求する次のようなコードを実行します。

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

SecureClassLoader オブジェクトは CodeSource オブジェクトを渡します。このオブジェクトは、ロードされたクラスのコードベース (URL) と公開鍵の証明書をカプセル化します。Policy オブジェクトは、そのポリシー仕様を参照し、指定コードソースのコードで許可されているアクセス権を列挙する、適切な Permissions オブジェクトを返します。

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

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

refresh メソッドにより、ポリシーオブジェクトの現在の設定がリフレッシュまたは再読み込みされます。この処理は実装に依存します。たとえば、ポリシーオブジェクトがそのポリシーを設定ファイルに格納する場合に refresh を呼び出すと、ポリシー設定ファイルが再読み込みされます。リフレッシュされたポリシーは指定された CodeSource からロードされたクラスには有効でない場合があります。このポリシーは、ClassLoader の ProtectionDomain 書き込みストラテジに依存しています。たとえば、SecureClassLoader などのキャッシュ保護ドメインがあります。

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

関連項目:
CodeSource, PermissionCollection, SecureClassLoader

コンストラクタの概要
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(Permission), setPolicy(java.security.Policy)

setPolicy

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

getPermissions

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

refresh

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

JavaTM 2 Platform
Std. Ed. v1.3

バグや機能要求の報告
さらに詳しい API リファレンスおよび開発者ドキュメントについては、 Java 2 SDK SE Developer Documentation を参照してください。このドキュメントには、概念、用語の定義、回避策、 実用的なコード例など、開発者を対象にした詳細な解説が掲載されています。

Java、Java 2D、JDBC は、米国およびその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2000 Sun Microsystems, Inc. 901 San Antonio Road,
Palo Alto, California, 94303, U.S.A. All Rights Reserved.