モジュール java.base
パッケージ java.security

クラスPolicy

java.lang.Object
java.security.Policy

@Deprecated(since="17", forRemoval=true) public abstract class Policy extends Object
非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
このクラスは、非推奨であり、将来のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。 したがって、このクラスも非推奨となり、削除される可能性があります。 Security Managerまたはこのクラスの交換はありません。
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要素は将来のバージョンで削除予定です。
    このクラスは、非推奨であり、将来のリリースで削除される可能性があります。「セキュリティ・マネージャ」と組み合わせて使用すると便利です。
  • フィールドのサマリー

    フィールド
    修飾子と型
    フィールド
    説明
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    読取り専用の空のPermissionCollectionインスタンスです。
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    サブクラスが呼び出すためのコンストラクタ。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    static Policy
    非推奨、削除予定: この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パラメータを返します。
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    指定されたCodeSourceに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    指定されたProtectionDomainに付与されたアクセス権のセットを含むPermissionCollectionオブジェクトを返します。
    static Policy
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    インストールされているPolicyオブジェクトを返します。
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    このポリシーのProviderを返します。
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    このPolicyのタイプを返します。
    boolean
    implies(ProtectionDomain domain, Permission permission)
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    ProtectionDomainに許可されたアクセス権についてグローバル・ポリシーを評価し、そのアクセス権が許可されているかどうかを判定します。
    void
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    ポリシー構成をリフレッシュまたは再読込みします。
    static void
    非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
    システム全体のPolicyオブジェクトを設定します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • フィールド詳細

    • 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 - typenullである場合
      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 - typenullである場合
      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 - 指定されたProvidernullである場合、または指定されたパラメータが指定されたProviderからPolicySpi実装によって理解されない場合
      NoSuchAlgorithmException - 指定されたProviderが、指定された型のPolicySpi実装をサポートしていない場合
      NullPointerException - typenullである場合
      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 - 判定対象のProtectionDomain
      permission - 含まれているかどうかを判定するPermissionオブジェクト。
      戻り値:
      "権限"がこのProtectionDomainに付与された権限の適切なサブセットである場合、true
      導入されたバージョン:
      1.4
      関連項目:
    • refresh

      public void refresh()
      非推奨、削除予定: このAPI要素は将来のバージョンで削除予定です。
      ポリシー構成をリフレッシュまたは再読込みします。 このメソッドの動作は実装に依存します。 たとえば、ファイルの形式のポリシーに対してrefreshを呼び出すと、ファイルが再読み込みされます。

      このメソッドのデフォルト実装では何の処理も行われません。 ポリシー実装によってリフレッシュ操作がサポートされている場合、このメソッドはオーバーライドされます。