モジュール 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 Runtime Environment内で実行されるコードにセキュリティ依存の操作を実行するアクセス権があるかどうかの判定を行います。

実行時にインストールされるPolicyオブジェクトは、常に1つだけです。 Policyオブジェクトは、setPolicyメソッドを呼び出すことでインストールできます。 インストールされたPolicyオブジェクトを取得するには、getPolicyメソッドを呼び出します。

実行時にPolicyオブジェクトがインストールされなかった場合は、getPolicyを呼び出すと、デフォルトのPolicy実装のインスタンス(この抽象クラスのデフォルトのサブクラス実装)がインストールされます。 デフォルトのPolicy実装を変更するには、policy.providerセキュリティ・プロパティの値を希望するPolicyサブクラス実装の完全修飾名に設定します。 このクラスをロードするには、システム・クラス・ローダーを使用します。

アプリケーション・コードは、Policyを直接サブクラス化して、カスタム実装を提供できます。 また、標準型のgetInstanceファクトリ・メソッドを1つ呼び出すことで、Policyオブジェクトのインスタンスを構築できます。 デフォルトのポリシー型はJavaPolicyです。

Policyインスタンスのインストール(デフォルトのインストールか、setPolicyの呼出しによるインストール)が完了したあと、Javaランタイムは、(ProtectionDomainにカプセル化された)コードを実行することによってセキュリティ・マネージャで保護された操作を実行できるかどうかを判断する必要があるときに、impliesメソッドを呼び出します。 Policyオブジェクトがポリシー・データを取り出す方法は、Policy実装そのものによって異なります。 たとえば、ポリシー・データを、フラットなASCIIファイル、Policyクラスの直列化されたバイナリ・ファイル、またはデータベースに保存できます。

refreshメソッドにより、ポリシー・オブジェクトのデータがリフレッシュまたは再読み込みされます。 この操作は実装に依存します。 たとえば、ポリシー・オブジェクトがそのデータを設定ファイルに格納する場合、refreshを呼び出すと、ポリシー構成ファイルが再度読み込まれます。 リフレッシュ操作がサポートされていない場合、このメソッドは何も行いません。 リフレッシュされたポリシーは、特定のProtectionDomainのクラスに対して有効でない場合があります。 これは、Policyプロバイダの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要素は、将来のバージョンで削除される可能性があります。
    このPolicyの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への呼出しによって変更が可能なので、キャッシュしないでください。 このメソッドは最初にSecurityPermission("getPolicy")アクセス権を使用してSecurityManager.checkPermissionを呼び出し、Policyオブジェクトを取得してもよいかどうかを確認します。
      戻り値:
      インストール済みの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オブジェクトを返します。

      このメソッドは、最優先のProviderから順に、登録済みのセキュリティ・プロバイダのリストをトラバースします。 指定された型をサポートする最初のProviderの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オブジェクトを返します。

      指定されたProviderオブジェクトのPolicySpi実装をカプセル化する新しいPolicyオブジェクトが返されます。 指定されたProviderオブジェクトは、プロバイダ・リストに登録する必要はありません。

      パラメータ:
      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要素は、将来のバージョンで削除される可能性があります。
      このPolicyのProviderを返します。

      このPolicyインスタンスは、Policy.getInstanceの呼出しによって取得された場合にかぎりProviderを持ちます。 そうでない場合は、このメソッドはnullを返します。

      戻り値:
      このPolicyの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オブジェクト。
      戻り値:
      permissionがこのProtectionDomainに許可されたアクセス権の適切なサブセットの場合はtrue。
      導入されたバージョン:
      1.4
      関連項目:
    • refresh

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

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