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オブジェクトと似ています。サブクラスは、一度作成されたアクセス権の状態を変更できるメソッドを提供することはできません。
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を返します。ただし、定義済みのものがない場合は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, 2014, Oracle and/or its affiliates. All rights reserved.