- すべての実装されたインタフェース:
Serializable
,Guard
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
と置き換えられます。
なお、特定のUnresolvedPermission
のgetName
メソッドから返される値は、解決されなかった実際のアクセス権の「型(type
)」(クラス名)である点に注意してください。
- 導入されたバージョン:
- 1.2
- 関連項目:
-
コンストラクタのサマリー
コンストラクタ説明UnresolvedPermission
(String type, String name, String actions, Certificate[] certs) 権限が解決されたときに、後で指定したクラスの権限を実際に作成するために必要な権限情報を含む新しいUnresolvedPermission
を作成します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
2つのUnresolvedPermission
オブジェクトの等価性をチェックします。UnresolvedPermission
に対するアクションがないため、アクションの正規文字列表現(現在は空の文字列")を返します。解決されていない実際のアクセス権のアクションを取得します。解決されていない実際のアクセス権に対する署名者の証明書(それをサポートする連鎖は含まない)を取得します。解決されていない実際のアクセス権のターゲット名を取得します。解決されていない実際のアクセス権の型(クラス名)を取得します。int
hashCode()
このオブジェクトのハッシュ・コード値を返します。boolean
このメソッドは、未解決の権限に対して常にfalse
を返します。UnresolvedPermission
オブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。toString()
このUnresolvedPermission
を記述する文字列を返します。クラスjava.security.Permissionで宣言されたメソッド
checkGuard, getName
-
コンストラクタの詳細
-
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
オブジェクトの等価性をチェックします。obj
がUnresolvedPermission
であり、このオブジェクトと同じタイプ(class)名、権限名、アクションおよび証明書があることを確認します。証明書が等しいかどうかを判定する際にこのメソッドが比較するのは、実際の署名者の証明書だけです。 それをサポートする証明書チェーンは、このメソッドでは考慮されません。
- 定義:
equals
、クラスPermission
- パラメータ:
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。- 戻り値:
obj
がUnresolvedPermission
であり、このオブジェクトと同じタイプ(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オブジェクト。
-