|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.Policy
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 |
コンストラクタの詳細 |
public Policy()
メソッドの詳細 |
public static Policy getPolicy()
setPolicy
への呼び出しによって変更が可能なので、キャッシュしないでください。このメソッドは最初に SecurityPermission("getPolicy")
アクセス権を使って SecurityManager.checkPermission
を呼び出して、Policy オブジェクトを取得してもよいかどうかを確認します。SecurityException
- セキュリティマネージャが存在する場合に、セキュリティマネージャの checkPermission
が Policy オブジェクトの取得を許可しないときSecurityManager.checkPermission(Permission)
,
setPolicy(java.security.Policy)
public static void setPolicy(Policy policy)
SecurityPermission("setPolicy")
アクセス権を使って SecurityManager.checkPermission
を呼び出して、Policy を設定してもよいかどうかを確認します。policy
- 新規システム Policy オブジェクトSecurityException
- セキュリティマネージャが存在する場合に、セキュリティマネージャの checkPermission
が Policy の設定を許可しないときSecurityManager.checkPermission(Permission)
,
getPolicy()
public abstract PermissionCollection getPermissions(CodeSource codesource)
codesource
- 呼び出し側に関連した CodeSource。これは、コードの出所である元の位置と、その署名者の 1 つまたは複数の公開鍵をカプセル化するSecurityException
- 現在のスレッドがポリシーオブジェクトで getPermissions
を呼び出すアクセス権を持たない場合public abstract void refresh()
refresh
を呼び出すと、ファイルが再読み込みされます。SecurityException
- 現在のスレッドがこの Policy オブジェクトをリフレッシュするアクセス権を持たない場合
|
JavaTM 2 Platform Std. Ed. v1.3 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
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.