public abstract class Permission extends Object implements Guard, Serializable
ほとんどの Permission オブジェクトはまた、オブジェクトに許可されているアクションを通知するアクションリストを含みます。たとえば java.io.FilePermission
オブジェクトでは、アクセス権の名前はファイルまたはディレクトリのパス名で、アクションリスト (読み込み、書き込みなど) は、指定されたファイル、またはディレクトリ内のファイルにどのアクションが許可されているかを指定します。アクションリストは、そうしたリストを必要としない java.lang.RuntimePermission
などの Permission オブジェクトではオプションです。ユーザーは、名前付きのアクセス権 (system.exit など) を持つ場合と持たない場合があります。
各サブクラスによって実装しなければならない重要なメソッドは、Permissions を比較する implies
メソッドです。基本的に、「permission p1 は permission p2 を包含する」とは、permission p1 が許可された場合には permission p2 も当然許可されるということです。したがって、これは適性テストではなく、サブセットテストです。
Permission オブジェクトは、一度作成すると不変になるという点では String オブジェクトと似ています。サブクラスは、一度作成されたアクセス権の状態を変更できるメソッドを提供することはできません。
コンストラクタと説明 |
---|
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 を返します。ただし、定義済みのものがない場合は null を返します。
|
String |
toString()
Permission を記述する文字列を返します。
|
public Permission(String name)
name
- 作成する Permission オブジェクトの名前。public void checkGuard(Object object) throws SecurityException
SecurityManager.checkPermission
メソッドが呼び出され、このアクセス権オブジェクトを検査対象として渡します。アクセスが許可されると、何も行わずに復帰します。そうでない場合は、SecurityException をスローします。checkGuard
、インタフェース: Guard
object
- ガードのあるオブジェクト (現在は無視)。SecurityException
- セキュリティーマネージャーが存在し、セキュリティーマネージャーの 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
メソッドを使ってください。
equals
、クラス: Object
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。Object.hashCode()
、HashMap
public abstract int hashCode()
次に、Permission オブジェクトの必要な hashCode
動作を示します。
hashCode
メソッドは一貫して同じ整数を返さなければならない。ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
equals
メソッドに基づいて 2 つの Permission オブジェクトが等しい場合は、2 つの Permission オブジェクトでそれぞれ hashCode
メソッドを呼び出したとき、結果として同じ整数が生成されなければなりません。
hashCode
、クラス: Object
Object.equals(java.lang.Object)
, System.identityHashCode(java.lang.Object)
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 を使うものなど)。 バグまたは機能を送信
詳細な API リファレンスおよび開発者ドキュメントについては、Java SE のドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2013, Oracle and/or its affiliates. All rights reserved.