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 Policy
getInstance
(String type, Policy.Parameters params) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定された型のPolicyオブジェクトを返します。static Policy
getInstance
(String type, Policy.Parameters params, String provider) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。指定されたタイプのPolicy
オブジェクトを返します。static Policy
getInstance
(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
のタイプを返します。boolean
implies
(ProtectionDomain domain, Permission permission) 削除予定のため非推奨: このAPI要素は、将来のバージョンで削除される可能性があります。ProtectionDomainに許可されたアクセス権についてグローバル・ポリシーを評価し、そのアクセス権が許可されているかどうかを判定します。void
refresh()
削除予定のため非推奨: この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.preferred
Security
プロパティを使用して、指定されたアルゴリズムの優先プロバイダの順序を決定します。 これは、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
を呼び出すと、ファイルが再読み込みされます。このメソッドのデフォルト実装では何の処理も行われません。 ポリシー実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。
-