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

クラスUnresolvedPermission

java.lang.Object
java.security.Permission
java.security.UnresolvedPermission
すべての実装されたインタフェース:
Serializable, Guard

public final class UnresolvedPermission extends Permission implements Serializable
UnresolvedPermissionクラスは、ポリシーの初期化時に"未解決"であった権限を保持するために使用されます。 解決されていないアクセス権とは、Policyの初期化時に実際のPermissionクラスがまだ存在していないアクセス権のことです(下記を参照)。

Java実行時のポリシー(さまざまな主体からコードで利用できるアクセス権を指定する)は、Policyオブジェクトによって表現されます。 Policyが初期化または再表示されるたびに、Policyによって許可されるすべてのアクセス権に対して適切なクラスのPermissionオブジェクトが作成されます。

ポリシーの構成によって参照されるアクセス権クラス・タイプの多くは、ローカルに存在します(つまり、CLASSPATH上に置かれている)。 このようなアクセス権のオブジェクトは、Policyの初期化時にインスタンスを生成できます。 たとえば、FilePermissionクラスはCLASSPATHで見つかるので、いつでもjava.io.FilePermissionのインスタンスを生成できます。

ほかのアクセス権クラスは、Policyの初期化時にはまだ存在しない場合もあります。 たとえば、参照されたアクセス権クラスは、あとにロードされるJARファイル内にある可能性があります。 そのような各クラスでは、UnresolvedPermissionのインスタンスが生成されます。 このため、UnresolvedPermissionは基本的に、アクセス権についての情報を保持する「プレースホルダー」です。

その後、コードが以前に未解決であったが、そのクラスがロードされてからそのタイプの権限でAccessController.checkPermission(java.security.Permission)をコールすると、そのタイプの以前に未解決の権限は"解決済"になります。 つまり、そのような個々のUnresolvedPermissionごとに、UnresolvedPermission内の情報に基づいて適切なクラス型の新しいオブジェクトが生成されます。

新しいクラスをインスタンス化するために、UnresolvedPermissionは、クラスがゼロ、1または2つの引数コンストラクタ(あるいはその両方)を提供していると想定します。 引数なしコンストラクタは、名前とアクションを持たないアクセス権をインスタンス化する場合に使用されます。 また、1つの引数をとるコンストラクタはString型の名前を入力として受け取るものと仮定され、2つの引数をとるコンストラクタはString型の名前とString型のアクションを入力として受け取るものと仮定されます。 UnresolvedPermissionは、nullの名前またはアクション(あるいはその両方)を持つコンストラクタを呼び出すことができます。 適切な権限コンストラクタが使用できない場合、UnresolvedPermissionは無視され、コードの実行に関連する権限は付与されません。

新しく作成された権限オブジェクトは、削除されたUnresolvedPermissionと置き換えられます。

なお、特定のUnresolvedPermissiongetNameメソッドから返される値は、解決されなかった実際のアクセス権の「型(type)」(クラス名)である点に注意してください。

導入されたバージョン:
1.2
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
    権限が解決されたときに、後で指定したクラスの権限を実際に作成するために必要な権限情報を含む新しいUnresolvedPermissionを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    2つのUnresolvedPermissionオブジェクトの等価性をチェックします。
    UnresolvedPermissionに対するアクションがないため、アクションの正規文字列表現(現在は空の文字列")を返します。
    解決されていない実際のアクセス権のアクションを取得します。
    解決されていない実際のアクセス権に対する署名者の証明書(それをサポートする連鎖は含まない)を取得します。
    解決されていない実際のアクセス権のターゲット名を取得します。
    解決されていない実際のアクセス権の型(クラス名)を取得します。
    int
    このオブジェクトのハッシュ・コード値を返します。
    boolean
    このメソッドは、未解決の権限に対して常にfalseを返します。
    UnresolvedPermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。
    このUnresolvedPermissionを記述する文字列を返します。

    クラスjava.security.Permissionで宣言されたメソッド

    checkGuard, getName

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

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • UnresolvedPermission

      public UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
      権限が解決されたときに、後で指定したクラスの権限を実際に作成するために必要な権限情報を含む新しいUnresolvedPermissionを作成します。
      パラメータ:
      type - この解決されていないアクセス権が解決されたときに作成されるPermissionクラスのクラス名。
      name - アクセス権の名前。
      actions - アクセス権のアクション。
      certs - アクセス権のクラスの署名で使われた証明書。 これは証明書チェーンのリストであり、それぞれの連鎖は署名者の証明書およびそれをサポートする証明書チェーン(オプション)から構成される。 各連鎖は下位から上位の順に並べられる。つまり、署名者の証明書が最初で、(ルートの)証明書発行局が最後になる。 署名者の証明書は配列からコピーされる。 その後に配列を変更しても、このUnresolvedPermissionには影響しません。
  • メソッドの詳細

    • implies

      public boolean implies(Permission p)
      このメソッドは、未解決の権限に対して常にfalseを返します。 つまり、UnresolvedPermissionは、別の権限を示しているとはみなされません。
      定義:
      implies、クラスPermission
      パラメータ:
      p - チェック対象のアクセス権。
      戻り値:
      false
    • equals

      public boolean equals(Object obj)
      2つのUnresolvedPermissionオブジェクトの等価性をチェックします。 objUnresolvedPermissionであり、このオブジェクトと同じタイプ(class)名、権限名、アクションおよび証明書があることを確認します。

      証明書が等しいかどうかを判定する際にこのメソッドが比較するのは、実際の署名者の証明書だけです。 それをサポートする証明書チェーンは、このメソッドでは考慮されません。

      定義:
      equals、クラスPermission
      パラメータ:
      obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      objUnresolvedPermissionであり、このオブジェクトと同じタイプ(class)の名前、権限名、アクションおよび証明書を持つ場合はtrue。
      関連項目:
    • hashCode

      public int hashCode()
      このオブジェクトのハッシュ・コード値を返します。
      定義:
      hashCode、クラスPermission
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • getActions

      public String getActions()
      UnresolvedPermissionに対するアクションがないため、アクションの正規文字列表現(現在は空の文字列")を返します。 つまり、このUnresolvedPermissionが解決されるときに作成される権限のアクションはnull以外の場合もありますが、UnresolvedPermission自体はアクションを持つとはみなされません。
      定義:
      getActions、クラスPermission
      戻り値:
      空の文字列""。
    • getUnresolvedType

      public String getUnresolvedType()
      解決されていない実際のアクセス権の型(クラス名)を取得します。
      戻り値:
      解決されていない実際のアクセス権の型(クラス名)
      導入されたバージョン:
      1.5
    • getUnresolvedName

      public String getUnresolvedName()
      解決されていない実際のアクセス権のターゲット名を取得します。
      戻り値:
      解決されていない実際のアクセス権のターゲット名。ターゲット名が存在しない場合はnull
      導入されたバージョン:
      1.5
    • getUnresolvedActions

      public String getUnresolvedActions()
      解決されていない実際のアクセス権のアクションを取得します。
      戻り値:
      解決されていない実際のアクセス権のアクション。アクションが存在しない場合はnull
      導入されたバージョン:
      1.5
    • getUnresolvedCerts

      public Certificate[] getUnresolvedCerts()
      解決されていない実際のアクセス権に対する署名者の証明書(それをサポートする連鎖は含まない)を取得します。
      戻り値:
      解決されていない基礎となるアクセス権の署名者証明書、または署名者証明書がない場合はnull このメソッドが呼び出されるたびに新しい配列を返す。
      導入されたバージョン:
      1.5
    • toString

      public String toString()
      このUnresolvedPermissionを記述する文字列を返します。 規約では、クラス名、アクセス権の名前、およびアクションが、'(unresolved "ClassName" "name" "actions")'という形式で指定されます。
      オーバーライド:
      toString、クラスPermission
      戻り値:
      このUnresolvedPermissionに関する情報。
    • newPermissionCollection

      public PermissionCollection newPermissionCollection()
      UnresolvedPermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。
      オーバーライド:
      newPermissionCollection、クラスPermission
      戻り値:
      UnresolvedPermissionsの格納に適した新しいPermissionCollectionオブジェクト。