|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object java.security.Policy
public abstract class Policy
Policy オブジェクトは、Java Runtime Environment 内で実行されるコードにセキュリティー依存の操作を実行するアクセス権があるかどうかの判定を行います。
実行時にインストールされる Policy オブジェクトは、常に 1 つだけです。Policy オブジェクトは、setPolicy
メソッドを呼び出すことでインストールできます。インストールされた Policy オブジェクトを取得するには、getPolicy
メソッドを呼び出します。
実行時に Policy オブジェクトがインストールされなかった場合は、getPolicy
を呼び出すと、デフォルトの Policy 実装のインスタンス (この abstract クラスのデフォルトのサブクラス実装) がインストールされます。デフォルトの Policy 実装を変更するには、(Java セキュリティープロパティーファイルの) policy.provider セキュリティープロパティーの値を、希望する Policy サブクラス実装の完全指定名に変更します。Java セキュリティープロパティーファイルは、<JAVA_HOME>/lib/security/java.security という名前のファイルに格納されています。<JAVA_HOME> は java.home システムプロパティーの値を参照しており、JRE のインストールディレクトリを示します。
アプリケーションコードは、Policy を直接サブクラス化して、カスタム実装を提供できます。また、標準型の getInstance
ファクトリメソッドを 1 つ呼び出すことで、Policy オブジェクトのインスタンスを構築できます。デフォルトのポリシー型は JavaPolicy です。標準の Policy 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照
Policy インスタンスのインストール (デフォルトのインストールか、setPolicy
の呼び出しによるインストール) が完了したあと、Java ランタイムは、(ProtectionDomain にカプセル化された) コードを実行することによってセキュリティーマネージャーで保護された操作を実行できるかどうかを判断する必要があるときに、implies
を呼び出します。Policy オブジェクトがポリシーデータを取り出す方法は、Policy 実装そのものによって異なります。たとえば、ポリシーデータを、フラットな ASCII ファイル、Policy クラスの直列化されたバイナリファイル、またはデータベースに保存できます。
refresh
メソッドにより、ポリシーオブジェクトのデータがリフレッシュまたは再読み込みされます。この操作は実装に依存します。たとえば、ポリシーオブジェクトがそのデータを設定ファイルに格納する場合、refresh
を呼び出すと、ポリシー設定ファイルが再度読み込まれます。リフレッシュ操作がサポートされていない場合、このメソッドは何も行いません。リフレッシュされたポリシーは、特定の ProtectionDomain のクラスに対して有効でない場合があります。これは、Policy プロバイダの implies
メソッドの実装と、PermissionCollection のキャッシュ方法に左右されます。
Provider
,
ProtectionDomain
,
Permission
入れ子のクラスの概要 | |
---|---|
static interface |
Policy.Parameters
このインタフェースは、Policy パラメータのマーカーインタフェースです。 |
フィールドの概要 | |
---|---|
static PermissionCollection |
UNSUPPORTED_EMPTY_COLLECTION
読み取り専用の空の PermissionCollection インスタンスです。 |
コンストラクタの概要 | |
---|---|
Policy()
|
メソッドの概要 | |
---|---|
static Policy |
getInstance(String type,
Policy.Parameters params)
指定された型の Policy オブジェクトを返します。 |
static Policy |
getInstance(String type,
Policy.Parameters params,
Provider provider)
指定された型の Policy オブジェクトを返します。 |
static Policy |
getInstance(String type,
Policy.Parameters params,
String provider)
指定された型の Policy オブジェクトを返します。 |
Policy.Parameters |
getParameters()
Policy パラメータを返します。 |
PermissionCollection |
getPermissions(CodeSource codesource)
指定された CodeSource に付与されたアクセス権のセットを含む PermissionCollection オブジェクトを返します。 |
PermissionCollection |
getPermissions(ProtectionDomain domain)
指定された ProtectionDomain に付与されたアクセス権のセットを含む PermissionCollection オブジェクトを返します。 |
static Policy |
getPolicy()
インストール済みの Policy オブジェクトを返します。 |
Provider |
getProvider()
この Policy の Provider を返します。 |
String |
getType()
この Policy の型を返します。 |
boolean |
implies(ProtectionDomain domain,
Permission permission)
ProtectionDomain に許可されたアクセス権についてグローバルポリシーを評価し、そのアクセス権が許可されているかどうかを判定します。 |
void |
refresh()
ポリシー設定をリフレッシュまたは再読み込みします。 |
static void |
setPolicy(Policy p)
システム全体の Policy オブジェクトを設定します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
フィールドの詳細 |
---|
public static final PermissionCollection UNSUPPORTED_EMPTY_COLLECTION
コンストラクタの詳細 |
---|
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 p)
SecurityPermission("setPolicy")
アクセス権を使用して SecurityManager.checkPermission
を呼び出し、Policy を設定してもよいかどうかを確認します。
p
- 新規システム Policy オブジェクト
SecurityException
- セキュリティーマネージャーが存在し、セキュリティーマネージャーの checkPermission
メソッドが Policy の設定を許可しない場合SecurityManager.checkPermission(Permission)
,
getPolicy()
public static Policy getInstance(String type, Policy.Parameters params) throws NoSuchAlgorithmException
このメソッドは、最優先の Provider から順に、登録済みのセキュリティープロバイダのリストをトラバースします。指定された型をサポートする最初の Provider の PolicySpi 実装をカプセル化する新しい Policy オブジェクトが返されます。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
type
- 指定された Policy 型。標準の Policy 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Policy のパラメータ。null の場合もある
SecurityException
- 呼び出し側に、指定された型の Policy インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたパラメータが、選択された Provider の PolicySpi 実装によって認識されない場合
NoSuchAlgorithmException
- 指定された型の PolicySpi 実装をサポートする Provider が存在しない場合Provider
public static Policy getInstance(String type, Policy.Parameters params, String provider) throws NoSuchProviderException, NoSuchAlgorithmException
指定されたプロバイダの PolicySpi 実装をカプセル化する新しい Policy オブジェクトが返されます。プロバイダリストに登録されたプロバイダを指定する必要があります。
登録済みプロバイダのリストは、Security.getProviders()
メソッド経由で取得できます。
type
- 指定された Policy 型。標準の Policy 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Policy のパラメータ。null の場合もあるprovider
- プロバイダ
SecurityException
- 呼び出し側に、指定された型の Policy インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたプロバイダが null か空の場合、または指定されたパラメータが指定されたプロバイダの PolicySpi 実装によって認識されない場合
NoSuchProviderException
- 指定されたプロバイダがセキュリティープロバイダリストに登録されていない場合
NoSuchAlgorithmException
- 指定されたプロバイダが、指定された型の PolicySpi 実装をサポートしない場合Provider
public static Policy getInstance(String type, Policy.Parameters params, Provider provider) throws NoSuchAlgorithmException
指定された Provider オブジェクトの PolicySpi 実装をカプセル化する新しい Policy オブジェクトが返されます。指定された Provider オブジェクトは、プロバイダリストに登録する必要はありません。
type
- 指定された Policy 型。標準の Policy 型のリストは、「Java 暗号化アーキテクチャー API 仕様 & リファレンス」の付録 A を参照params
- Policy のパラメータ。null の場合もあるprovider
- Provider
SecurityException
- 呼び出し側に、指定された型の Policy インスタンスを取得するアクセス権がない場合
NullPointerException
- 指定された型が null の場合
IllegalArgumentException
- 指定されたプロバイダが null の場合、または指定されたパラメータが指定されたプロバイダの PolicySpi 実装によって認識されない場合
NoSuchAlgorithmException
- 指定されたプロバイダが、指定された型の PolicySpi 実装をサポートしない場合Provider
public Provider getProvider()
この Policy インスタンスは、Policy.getInstance
の呼び出しによって取得された場合にかぎり Provider を持ちます。そうでない場合は、このメソッドは null を返します。
public String getType()
この Policy インスタンスは、Policy.getInstance
の呼び出しによって取得された場合にかぎり型を持ちます。そうでない場合は、このメソッドは null を返します。
public Policy.Parameters getParameters()
この Policy インスタンスは、Policy.getInstance
の呼び出しによって取得された場合にかぎりパラメータを持ちます。そうでない場合は、このメソッドは null を返します。
public PermissionCollection getPermissions(CodeSource codesource)
この操作はすべてのポリシー実装ではサポートされない可能性があるため、アプリケーションでこのメソッドを呼び出すことはお勧めしません。アプリケーションは、ポリシーチェックを行うために、もっぱら implies
メソッドを使用するべきです。アプリケーションでどうしても getPermissions メソッドを呼び出す必要がある場合は、getPermissions(ProtectionDomain)
を呼び出すようにしてください。
このメソッドのデフォルト実装は、Policy.UNSUPPORTED_EMPTY_COLLECTION を返します。ポリシー実装が CodeSource に付与されたアクセス権のセットを返すことができる場合、このメソッドはオーバーライドできます。
codesource
- 返される PermissionCollection が付与されている CodeSource
public PermissionCollection getPermissions(ProtectionDomain domain)
この操作はすべてのポリシー実装ではサポートされない可能性があるため、アプリケーションでこのメソッドを呼び出すことはお勧めしません。アプリケーションは、ポリシーチェックを行うために implies
メソッドを使用するべきです。
このメソッドのデフォルト実装は、最初に、getPermissions(CodeSource)
から返されるアクセス権 (指定された ProtectionDomain から取得される CodeSource) と、指定された ProtectionDomain 内にあるアクセス権を取得します。次に、これらすべてのアクセス権が結合され、新しい単一の PermissionCollection オブジェクトとして返されます。getPermissions(CodeSource)
が Policy.UNSUPPORTED_EMPTY_COLLECTION を返した場合、このメソッドは、指定された ProtectionDomain 内のアクセス権を、新しい単一の PermissionCollection オブジェクトとして返します。
ポリシー実装が ProtectionDomain に付与されたアクセス権のセットを返すことができる場合、このメソッドはオーバーライドできます。
domain
- 返される PermissionCollection が付与されている ProtectionDomain
public boolean implies(ProtectionDomain domain, Permission permission)
domain
- 判定対象の ProtectionDomainpermission
- 含まれているかどうかを判定する Permission オブジェクト
ProtectionDomain
public void refresh()
refresh
を呼び出すと、ファイルが再読み込みされます。
このメソッドのデフォルト実装では何の処理も行われません。ポリシー実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。
|
JavaTM Platform Standard Ed. 6 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Copyright 2009 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。