モジュール 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を保持できます。 解決されていないアクセス権とは、Policyの初期化時に実際のPermissionクラスがまだ存在していないアクセス権のことです(下記を参照)。

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

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

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

その後、以前解決されなかったがその後クラスがロードされた型のアクセス権に対し、AccessController.checkPermissionがコード内から呼び出されると、その型の未解決のアクセス権が「解決され」ます。 つまり、そのような個々のUnresolvedPermissionごとに、UnresolvedPermission内の情報に基づいて適切なクラス型の新しいオブジェクトが生成されます。

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

新しく作成されたアクセス権オブジェクトがUnresolvedPermissionに置き換わり、そのUnresolvedPermissionは削除されます。

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

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

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

    修飾子と型
    メソッド
    説明
    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を作成して、アクセス権が解決されるときに、指定されたクラスのPermissionを実際に作成します。
      パラメータ:
      type - この解決されていないアクセス権が解決されたときに作成されるPermissionクラスのクラス名。
      name - アクセス権の名前。
      actions - アクセス権のアクション。
      certs - アクセス権のクラスの署名で使われた証明書。 これは証明書チェーンのリストであり、それぞれの連鎖は署名者の証明書およびそれをサポートする証明書チェーン(オプション)から構成される。 各連鎖は下位から上位の順に並べられる。つまり、署名者の証明書が最初で、(ルートの)証明書発行局が最後になる。 署名者の証明書は配列からコピーされる。 その後配列が変更されても、このUnsolvedPermissionにその影響が及ぶことはない。
  • メソッドの詳細

    • implies

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

      public boolean equals(Object obj)
      2つのUnresolvedPermissionオブジェクトが等しいかどうかを判定します。 objがUnresolvedPermissionで、このオブジェクトと同じ型(クラス)の名前、アクセス権の名前、アクション、証明書を持つかどうかを調べます。

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

      定義:
      equals 、クラス:  Permission
      パラメータ:
      obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      objがUnresolvedPermissionで、このオブジェクトと同じ型(クラス)の名前、アクセス権の名前、アクション、および証明書を持つ場合は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オブジェクト。