- すべての実装されたインタフェース:
Serializable
,Guard
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は削除されます。
なお、特定のUnresolvedPermission
のgetName
メソッドから返される値は、解決されなかった実際のアクセス権の「型(type
)」(クラス名)である点に注意してください。
- 導入されたバージョン:
- 1.2
- 関連項目:
Permission
,Permissions
,PermissionCollection
,Policy
, 直列化された形式
-
コンストラクタのサマリー
コンストラクタ説明UnresolvedPermission(String type, String name, String actions, Certificate[] certs)
あとで必要になるアクセス権情報を保持する新しいUnresolvedPermissionを作成して、アクセス権が解決されるときに、指定されたクラスのPermissionを実際に作成します。 -
メソッドのサマリー
修飾子と型メソッド説明boolean
2つのUnresolvedPermissionオブジェクトが等しいかどうかを判定します。アクションの正規の文字列表現を返します。この文字列表現は、現在は空の文字列""です。これは、UnresolvedPermissionに対応するアクションがないためです。解決されていない実際のアクセス権のアクションを取得します。解決されていない実際のアクセス権に対する署名者の証明書(それをサポートする連鎖は含まない)を取得します。解決されていない実際のアクセス権のターゲット名を取得します。解決されていない実際のアクセス権の型(クラス名)を取得します。int
hashCode()
このオブジェクトのハッシュ・コード値を返します。boolean
implies(Permission p)
未解決のアクセス権に対して常にfalseを返します。UnresolvedPermissionオブジェクトを格納するための新しいPermissionCollectionオブジェクトを返します。toString()
このUnresolvedPermissionを記述する文字列を返します。クラス java.security.Permissionで宣言されたメソッド
checkGuard, getName
-
コンストラクタの詳細
-
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。
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public int hashCode()このオブジェクトのハッシュ・コード値を返します。- 定義:
hashCode
、クラス:Permission
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
-
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オブジェクト。
-