JavaTM 2 Platform
Standard Ed. 5.0

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 メソッドから返される値は、解決されなかった実際のアクセス権の「型」(クラス名) である点に注意してください。

関連項目:
Permission, Permissions, PermissionCollection, Policy, 直列化された形式

コンストラクタの概要
UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
          あとで必要になるアクセス権情報を保持する新しい UnresolvedPermission を作成して、アクセス権が解決されるときに、指定されたクラスの Permission を実際に作成します。
 
メソッドの概要
 boolean equals(Object obj)
          2 つの UnresolvedPermission オブジェクトが等しいかどうかを判定します。
 String getActions()
          アクションの標準的な文字列表現を返します。
 String getUnresolvedActions()
          解決されていない実際のアクセス権のアクションを取得します。
 Certificate[] getUnresolvedCerts()
          解決されていない実際のアクセス権に対する署名者の証明書 (それをサポートする連鎖は含まない) を取得します。
 String getUnresolvedName()
          解決されていない実際のアクセス権のターゲット名を取得します。
 String getUnresolvedType()
          解決されていない実際のアクセス権の型 (クラス名) を取得します。
 int hashCode()
          このオブジェクトのハッシュコード値を返します。
 boolean implies(Permission p)
          未解決のアクセス権に対して常に false を返します。
 PermissionCollection newPermissionCollection()
          UnresolvedPermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。
 String toString()
          この 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 は別のアクセス権を含むものとは見なされません。

定義:
クラス Permission 内の implies
パラメータ:
p - チェック対象のアクセス権
戻り値:
false

equals

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

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

定義:
クラス Permission 内の equals
パラメータ:
obj - このオブジェクトと等しいかどうかを判定するオブジェクト
戻り値:
obj が UnresolvedPermission で、このオブジェクトと同じ型 (クラス) の名前、アクセス権の名前、アクション、証明書を持つ場合は true
関連項目:
Object.hashCode(), Hashtable

hashCode

public int hashCode()
このオブジェクトのハッシュコード値を返します。

定義:
クラス Permission 内の hashCode
戻り値:
このオブジェクトのハッシュコード値
関連項目:
Object.equals(java.lang.Object), Hashtable

getActions

public String getActions()
アクションの標準的な文字列表現を返します。この文字列表現は、現在は空の文字列 "" です。これは、UnresolvedPermission に対応するアクションがないためです。つまり、この UnresolvedPermission の解決時に作成されるアクセス権のアクションは null 以外になりますが、UnresolvedPermission 自身がなんらかのアクションを持つと見なされることはありません。

定義:
クラス Permission 内の getActions
戻り値:
空の文字列 ""

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 を記述する文字列を返します。規約では、クラス名、アクセス権の名前、およびアクションが、'(unsolved "ClassName" "name" "actions")' という形式で指定されます。

オーバーライド:
クラス Permission 内の toString
戻り値:
この UnresolvedPermission についての情報

newPermissionCollection

public PermissionCollection newPermissionCollection()
UnresolvedPermission オブジェクトを格納するための新しい PermissionCollection オブジェクトを返します。

オーバーライド:
クラス Permission 内の newPermissionCollection
戻り値:
UnresolvedPermissions を格納するのに適切な新しい PermissionCollection オブジェクト

JavaTM 2 Platform
Standard Ed. 5.0

バグの報告と機能のリクエスト
さらに詳しい API リファレンスおよび開発者ドキュメントについては、Java 2 SDK SE 開発者用ドキュメントを参照してください。開発者向けの詳細な解説、概念の概要、用語の定義、バグの回避策、およびコード実例が含まれています。

Copyright 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Documentation Redistribution Policy も参照してください。