Policyオブジェクトは、Javaランタイム環境で実行されるコードにセキュリティ依存の操作を実行する権限があるかどうかを判断します。
実行時にインストールされるPolicyオブジェクトは1つのみです。 Policyオブジェクトは、setPolicyメソッドをコールしてインストールできます。 インストールされたPolicyオブジェクトは、getPolicyメソッドをコールして取得できます。
Policyオブジェクトがランタイムにインストールされていない場合、getPolicyをコールすると、デフォルトのPolicy実装(この抽象クラスのデフォルトのサブクラス実装)のインスタンスがインストールされます。 デフォルトのPolicy実装を変更するには、policy.providerセキュリティ・プロパティの値を目的のPolicyサブクラス実装の完全修飾名に設定します。 このクラスのロードには、システム・クラス・ローダーが使用されます。
アプリケーション・コードは、Policyを直接サブクラス化して、カスタム実装を提供できます。 また、Policyオブジェクトのインスタンスは、標準タイプのgetInstanceファクトリ・メソッドのいずれかを呼び出して構築できます。 デフォルトのポリシー型はJavaPolicyです。
Policyインスタンスが(デフォルトでは、またはsetPolicyをコールして)にインストールされると、Javaランタイムは、コード(ProtectionDomainにカプセル化)の実行でSecurityManagerで保護された操作を実行できるかどうかを判断する必要があるときに、そのimpliesメソッドを呼び出します。 Policyオブジェクトがポリシー・データを取得する方法は、Policy実装自体までです。 ポリシー・データは、たとえば、フラットなASCIIファイル、Policyクラスの直列化されたバイナリ・ファイル、またはデータベースに格納できます。
refreshメソッドにより、ポリシー・オブジェクトのデータがリフレッシュまたは再読み込みされます。 この操作は実装に依存します。 たとえば、ポリシー・オブジェクトがそのデータを設定ファイルに格納する場合、refreshを呼び出すと、ポリシー構成ファイルが再度読み込まれます。 リフレッシュ操作がサポートされていない場合、このメソッドは何も行いません。 リフレッシュされたポリシーは、特定のProtectionDomainのクラスに対して有効でない場合があります。 これは、ポリシー・プロバイダのimpliesメソッドの実装とそのPermissionCollectionキャッシュ方法に依存します。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
ネストされたクラスのサマリー
ネストされたクラス修飾子と型クラス説明static interface削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このクラスは、非推奨であり、将来のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 -
フィールドのサマリー
フィールド修飾子と型フィールド説明static final PermissionCollection削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。読取り専用の空のPermissionCollectionインスタンスです。 -
コンストラクタのサマリー
コンストラクタ -
メソッドのサマリー
修飾子と型メソッド説明static PolicygetInstance(String type, Policy.Parameters params) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定された型のPolicyオブジェクトを返します。static PolicygetInstance(String type, Policy.Parameters params, String provider) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたタイプのPolicyオブジェクトを返します。static PolicygetInstance(String type, Policy.Parameters params, Provider provider) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたタイプのPolicyオブジェクトを返します。削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。Policyパラメータを返します。getPermissions(CodeSource codesource) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたCodeSourceに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。getPermissions(ProtectionDomain domain) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたProtectionDomainに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。static Policy削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。インストールされているPolicyオブジェクトを返します。削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このポリシーのProviderを返します。getType()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このPolicyのタイプを返します。booleanimplies(ProtectionDomain domain, Permission permission) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ProtectionDomainに許可されたアクセス権についてグローバル・ポリシーを評価し、そのアクセス権が許可されているかどうかを判定します。voidrefresh()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ポリシー構成をリフレッシュまたは再読込みします。static void削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。システム全体のPolicyオブジェクトを設定します。
-
フィールド詳細
-
UNSUPPORTED_EMPTY_COLLECTION
public static final PermissionCollection UNSUPPORTED_EMPTY_COLLECTION削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。読取り専用の空のPermissionCollectionインスタンスです。- 導入されたバージョン:
- 1.6
-
-
コンストラクタの詳細
-
Policy
public Policy()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。サブクラスが呼び出すためのコンストラクタ。
-
-
メソッドの詳細
-
getPolicy
public static Policy getPolicy()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。インストールされているPolicyオブジェクトを返します。 この値はsetPolicyへの呼出しによって変更が可能なので、キャッシュしないでください。 このメソッドは、Policyオブジェクトを取得しても問題ないことを確認するために、まずSecurityPermission("getPolicy")権限を持つSecurityManager.checkPermissionをコールします。- 戻り値:
- インストール済みのPolicy。
- 例外:
SecurityException- セキュリティ・マネージャが存在し、そのcheckPermissionメソッドでPolicyオブジェクトを取得できない場合。- 関連項目:
-
setPolicy
public static void setPolicy(Policy p) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。システム全体のPolicyオブジェクトを設定します。 このメソッドは最初にSecurityPermission("setPolicy")アクセス権を使用してSecurityManager.checkPermissionを呼び出し、Policyを設定してもよいかどうかを確認します。- パラメータ:
p- 新しいシステムのPolicyオブジェクト。- 例外:
SecurityException- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermissionメソッドがPolicyの設定を許可しない場合。- 関連項目:
-
getInstance
public static Policy getInstance(String type, Policy.Parameters params) throws NoSuchAlgorithmException 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定された型のPolicyオブジェクトを返します。このメソッドは、最も優先されるプロバイダから始まる登録済セキュリティ・プロバイダのリストを横断します。 指定されたタイプをサポートする最初のプロバイダから
PolicySpi実装をカプセル化する新しいPolicyオブジェクトが返されます。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- 実装上のノート:
- JDKリファレンス実装では、さらに
jdk.security.provider.preferredSecurityプロパティを使用して、指定したアルゴリズムの優先プロバイダ順序を決定します。 これは、Security.getProviders()によって返されるプロバイダの順序とは異なる場合があります。 - パラメータ:
type- 指定されたPolicy型。 標準のポリシー・タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のポリシーに関する項を参照してください。params-Policyのパラメータ(null)。- 戻り値:
- 新しい
Policyオブジェクト - 例外:
IllegalArgumentException- 指定されたパラメータが、選択されたProviderからのPolicySpi実装によって理解されない場合NoSuchAlgorithmException-Providerが、指定された型のPolicySpi実装をサポートしていない場合NullPointerException-typeがnullである場合SecurityException- 呼出し元に、指定されたタイプのPolicyインスタンスを取得する権限がない場合。- 導入されたバージョン:
- 1.6
- 関連項目:
-
getInstance
public static Policy getInstance(String type, Policy.Parameters params, String provider) throws NoSuchProviderException, NoSuchAlgorithmException 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたタイプのPolicyオブジェクトを返します。指定したプロバイダから
PolicySpi実装をカプセル化する新しいPolicyオブジェクトが返されます。 プロバイダ・リストに登録されたプロバイダを指定する必要があります。登録済みプロバイダのリストは、
Security.getProviders()メソッド経由で取得できます。- パラメータ:
type- 指定されたPolicy型。 標準のポリシー・タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のポリシーに関する項を参照してください。params-Policyのパラメータ(null)。provider- プロバイダ- 戻り値:
- 新しい
Policyオブジェクト - 例外:
IllegalArgumentException- 指定されたプロバイダがnullまたは空の場合、または指定されたパラメータが指定されたプロバイダからのPolicySpi実装によって認識されない場合NoSuchAlgorithmException- 指定されたプロバイダが、指定された型のPolicySpi実装をサポートしていない場合NoSuchProviderException- 指定されたプロバイダがセキュリティ・プロバイダ・リストに登録されていない場合NullPointerException-typeがnullである場合SecurityException- 呼び出し元に、指定された型のPolicyインスタンスを取得する権限がない場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
getInstance
public static Policy getInstance(String type, Policy.Parameters params, Provider provider) throws NoSuchAlgorithmException 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたタイプのPolicyオブジェクトを返します。指定したプロバイダから
PolicySpi実装をカプセル化する新しいPolicyオブジェクトが返されます。 指定されたプロバイダをプロバイダ・リストに登録する必要はありません。- パラメータ:
type- 指定されたPolicy型。 標準のポリシー・タイプのリストは、「Javaセキュリティ標準アルゴリズム名仕様」のポリシーに関する項を参照してください。params-Policyのパラメータ(null)。provider-Provider。- 戻り値:
- 新しい
Policyオブジェクト - 例外:
IllegalArgumentException- 指定されたProviderがnullである場合、または指定されたパラメータが指定されたProviderからPolicySpi実装によって理解されない場合NoSuchAlgorithmException- 指定されたProviderが、指定された型のPolicySpi実装をサポートしていない場合NullPointerException-typeがnullである場合SecurityException- 呼び出し元に、指定された型のPolicyインスタンスを取得する権限がない場合- 導入されたバージョン:
- 1.6
- 関連項目:
-
getProvider
public Provider getProvider()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このポリシーのProviderを返します。この
Policyインスタンスには、Policy.getInstanceへのコールによって取得されたプロバイダのみが含まれます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
- このポリシーの
Provider、またはnull。 - 導入されたバージョン:
- 1.6
-
getType
public String getType()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。このPolicyのタイプを返します。この
Policyインスタンスには、Policy.getInstanceのコールを介して取得されたタイプのみが含まれます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
- この
Policyまたはnullのタイプ。 - 導入されたバージョン:
- 1.6
-
getParameters
public Policy.Parameters getParameters()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。Policyパラメータを返します。この
Policyインスタンスには、Policy.getInstanceのコールを介して取得されたパラメータのみが含まれます。 それ以外の場合、このメソッドはnullを返します。- 戻り値:
Policyパラメータまたはnull。- 導入されたバージョン:
- 1.6
-
getPermissions
public PermissionCollection getPermissions(CodeSource codesource) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたCodeSourceに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。この操作はすべてのポリシー実装ではサポートされない可能性があるため、アプリケーションでこのメソッドを呼び出すことはお薦めしません。 アプリケーションは、ポリシー・チェックを行うために、もっぱら
impliesメソッドを使用するべきです。 アプリケーションでどうしてもgetPermissionsメソッドを呼び出す必要がある場合は、getPermissions(ProtectionDomain)を呼び出すようにしてください。このメソッドのデフォルト実装は、Policy.UNSUPPORTED_EMPTY_COLLECTIONを返します。 ポリシー実装がCodeSourceに付与されたアクセス権のセットを返すことができる場合、このメソッドはオーバーライドできます。
- パラメータ:
codesource- 返されるPermissionCollectionが付与されているCodeSource。- 戻り値:
- 指定されたCodeSourceに付与されたアクセス権のセット。 この操作がサポートされている場合、返されるアクセス権のセットは新しい可変インスタンスであり、かつ複数の種類のPermission型をサポートしている必要がある。 この操作がサポートされていない場合、Policy.UNSUPPORTED_EMPTY_COLLECTIONが返される。
-
getPermissions
public PermissionCollection getPermissions(ProtectionDomain domain) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたProtectionDomainに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。この操作はすべてのポリシー実装ではサポートされない可能性があるため、アプリケーションでこのメソッドを呼び出すことはお薦めしません。 アプリケーションは、ポリシー・チェックを行うために
impliesメソッドを使用するべきです。このメソッドのデフォルト実装は、最初に、
getPermissions(CodeSource)から返されるアクセス権(指定されたProtectionDomainから取得されるCodeSource)と、指定されたProtectionDomain内にあるアクセス権を取得します。 次に、これらすべてのアクセス権が結合され、新しい単一のPermissionCollectionオブジェクトとして返されます。getPermissions(CodeSource)がPolicy.UNSUPPORTED_EMPTY_COLLECTIONを返した場合、このメソッドは、指定されたProtectionDomain内のアクセス権を、新しい単一のPermissionCollectionオブジェクトとして返します。ポリシー実装がProtectionDomainに付与されたアクセス権のセットを返すことができる場合、このメソッドはオーバーライドできます。
- パラメータ:
domain- 返されるPermissionCollectionが付与されているProtectionDomain。- 戻り値:
- 指定されたProtectionDomainに付与されたアクセス権のセット。 この操作がサポートされている場合、返されるアクセス権のセットは新しい可変インスタンスであり、かつ複数の種類のPermission型をサポートしている必要がある。 この操作がサポートされていない場合、Policy.UNSUPPORTED_EMPTY_COLLECTIONが返される。
- 導入されたバージョン:
- 1.4
-
implies
public boolean implies(ProtectionDomain domain, Permission permission) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ProtectionDomainに許可されたアクセス権についてグローバル・ポリシーを評価し、そのアクセス権が許可されているかどうかを判定します。- パラメータ:
domain- 判定対象のProtectionDomainpermission- 含まれているかどうかを判定するPermissionオブジェクト。- 戻り値:
- "権限"がこのProtectionDomainに付与された権限の適切なサブセットである場合、
true。 - 導入されたバージョン:
- 1.4
- 関連項目:
-
refresh
public void refresh()削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ポリシー構成をリフレッシュまたは再読込みします。 このメソッドの動作は実装に依存します。 たとえば、ファイルの形式のポリシーに対してrefreshを呼び出すと、ファイルが再読み込みされます。このメソッドのデフォルト実装では何の処理も行われません。 ポリシー実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。
-