|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object | +--java.security.Permission
システムリソースへのアクセスを表現する抽象クラスです。すべてのアクセス権は、特定の Permission サブクラスのセマンティクスを定義するための抽象関数を持つほか、実装をサブクラスに依存する名前を持ちます。
ほとんどの Permission オブジェクトはまた、オブジェクトに許可されているアクションを通知するアクションリストを含みます。たとえば java.io.FilePermission
オブジェクトでは、アクセス権の名前はファイルまたはディレクトリのパス名で、アクションリスト (読み込み、書き込みなど) は、指定されたファイル、またはディレクトリ内のファイルにどのアクションが許可されているかを指定します。アクションリストは、そうしたリストを必要としない java.lang.RuntimePermission
などの Permission オブジェクトではオプションです。ユーザは、名前付きのアクセス権 (system.exit など) を持つ場合と持たない場合があります。
各サブクラスによって実装しなければならない重要なメソッドは、Permissions を比較する implies
メソッドです。基本的に、「permission p1 は permission p2 を包含する」とは、permission p1 が許可された場合には permission p2 も当然許可されるということです。したがって、これは等価テストではなく、サブセットテストです。
Permission オブジェクトは、一度作成すると不変になるという点では String オブジェクトと似ています。サブクラスは、一度作成されたアクセス権の状態を変更できるメソッドを提供してはいけません。
Permissions
,
PermissionCollection
, 直列化された形式コンストラクタの概要 | |
Permission(String name)
指定された名前でアクセス権を構築します。 |
メソッドの概要 | |
void |
checkGuard(Object object)
アクセス権のガードインタフェースを実装します。 |
abstract boolean |
equals(Object obj)
2 つの Permission オブジェクトが等しいかどうかを判定します。 |
abstract String |
getActions()
アクションを String で返します。 |
String |
getName()
Permission の名前を返します。 |
abstract int |
hashCode()
Permission オブジェクトのハッシュコード値を返します。 |
abstract boolean |
implies(Permission permission)
このオブジェクトのアクションによって、指定されたアクセス権のアクションが包含されるかどうかを判定します。 |
PermissionCollection |
newPermissionCollection()
指定された Permission オブジェクトの空の PermissionCollection を返します。 |
String |
toString()
Permission を記述する文字列を返します。 |
クラス java.lang.Object から継承したメソッド |
clone,
finalize,
getClass,
notify,
notifyAll,
wait,
wait,
wait |
コンストラクタの詳細 |
public Permission(String name)
name
- 作成する Permission オブジェクトの名前メソッドの詳細 |
public void checkGuard(Object object) throws SecurityException
SecurityManager.checkPermission
メソッドが呼び出され、このアクセス権オブジェクトを検査対象として渡します。アクセスが許可されると、何も行わずに復帰します。そうでない場合は、SecurityException をスローします。object
- ガードのあるオブジェクト (現在は無視)checkPermission
メソッドがアクセスを許可しないときGuard
,
GuardedObject
,
SecurityManager.checkPermission(java.security.Permission)
public abstract boolean implies(Permission permission)
Permission オブジェクトにセマンティクスを課すことができるのは Permission のサブクラスだけなので、このメソッドはそのようなサブクラスによって実装されなければなりません。
implies
メソッドは、AccessController によって使用されます。現在の実行コンテキストで有効であることがわかっている他のアクセス権によって、要求されたアクセス権が包含されているかどうかを、このメソッドを使って調べます。
permission
- 検査対象のアクセス権public abstract boolean equals(Object obj)
アクセス制御を決定するのに equals
メソッドは使わないでください。代わりに implies
メソッドを使ってください。
obj
- このオブジェクトと等しいかどうかを判定されるオブジェクトpublic abstract int hashCode()
以下に、Permission オブジェクトの必要な hashCode
動作を示します。
hashCode
メソッドは一貫して同じ整数を返さなければならない。ただし、この整数は同じアプリケーションの実行ごとに同じである必要はない
equals
メソッドに基づいて 2 つの Permission オブジェクトが等しい場合は、2 つの Permission オブジェクトでそれぞれ hashCode
メソッドを呼び出したとき、結果として同じ整数が生成されなければならない
public final String getName()
java.io.FilePermission
の場合は、名前はパス名になります。public abstract String getActions()
perm1 = new FilePermission(p1,"read,write"); perm2 = new FilePermission(p2,"write,read");
getActions
メソッドが呼び出されると、どちらも "read,write" を返します。public PermissionCollection newPermissionCollection()
PermissionCollection.implies
メソッドが呼び出されたときに、正しいセマンティクスを提供するために、特定の PermissionCollection オブジェクトにそのアクセス権を格納する必要がある場合、Permission クラスのサブクラスはこのメソッドをオーバーライドします。null が返された場合、このメソッドの呼び出し側はこの種類のアクセス権を、選択するどの PermissionCollection に対しても自由に格納できます (Hashtable を使うもの、Vector を使うものなど)。public String toString()
|
Java プラットフォーム 1.2 |
|||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 内部クラス | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |