- java.lang.Object
-
- java.security.Permission
-
- すべての実装されたインタフェース:
Serializable
,Guard
- 直系の既知のサブクラス:
AllPermission
,BasicPermission
,CardPermission
,FilePermission
,MBeanPermission
,PrivateCredentialPermission
,ServicePermission
,SocketPermission
,UnresolvedPermission
,URLPermission
public abstract class Permission extends Object implements Guard, Serializable
システム・リソースへのアクセスを表現する抽象クラスです。 すべてのアクセス権は、特定のPermissionサブクラスのセマンティックスを定義するための抽象機能を持つほか、実装をサブクラスに依存する名前を持ちます。ほとんどのPermissionオブジェクトはまた、オブジェクトに許可されているアクションを通知するアクション・リストを含みます。 たとえば
java.io.FilePermission
オブジェクトでは、アクセス権の名前はファイルまたはディレクトリのパス名で、アクション・リスト(読み込み、書き込みなど)は、指定されたファイル、またはディレクトリ内のファイルにどのアクションが許可されているかを指定します。 アクション・リストは、そうしたリストを必要としないjava.lang.RuntimePermission
などのPermissionオブジェクトではオプションです。ユーザーは、名前付きのアクセス権(system.exitなど)を持つ場合と持たない場合があります。各サブクラスによって実装しなければならない重要なメソッドは、Permissionsを比較する
implies
メソッドです。 基本的に、「permission p1はpermission p2を包含する」とは、permission p1が許可された場合にはpermission p2も当然許可されるということです。 したがって、これは適性テストではなく、サブセット・テストです。Permissionオブジェクトは、一度作成すると不変になるという点ではStringオブジェクトと似ています。 サブクラスは、一度作成されたアクセス権の状態を変更できるメソッドを提供することはできません。
- 導入されたバージョン:
- 1.2
- 関連項目:
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を記述する文字列を返します。
-
-
-
コンストラクタの詳細
-
Permission
public Permission(String name)
指定された名前でアクセス権を構築します。- パラメータ:
name
- 作成するPermissionオブジェクトの名前。
-
-
メソッドの詳細
-
checkGuard
public void checkGuard(Object object) throws SecurityException
アクセス権のガード・インタフェースを実装します。SecurityManager.checkPermission
メソッドが呼び出され、このアクセス権オブジェクトを検査対象として渡します。 アクセスが許可されると、何も行わずに復帰します。 そうでない場合は、SecurityExceptionをスローします。- 定義:
checkGuard
、インタフェースGuard
- パラメータ:
object
- ガードのあるオブジェクト(現在は無視)。- 例外:
SecurityException
- セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermission
メソッドがアクセスを許可しない場合。- 関連項目:
Guard
,GuardedObject
,SecurityManager.checkPermission(java.security.Permission)
-
implies
public abstract boolean implies(Permission permission)
このオブジェクトのアクションによって、指定されたアクセス権のアクションが包含されるかどうかを判定します。Permissionオブジェクトにセマンティックスを課すことができるのはPermissionのサブクラスだけなので、このメソッドはそのようなサブクラスによって実装されなければいけません。
implies
メソッドは、AccessControllerによって使用されます。現在実行中のコンテキストで有効であることがわかっているほかのアクセス権によって、要求されたアクセス権が包含されているかどうかを、このメソッドを使って調べます。- パラメータ:
permission
- チェック対象のアクセス権。- 戻り値:
- 指定されたアクセス権がこのオブジェクトに含まれる場合はtrue、そうでない場合はfalse。
-
equals
public abstract boolean equals(Object obj)
2つのPermissionオブジェクトが等しいかどうかを判定します。アクセス制御を決定するのに
equals
メソッドは使わないでください。代わりにimplies
メソッドを使ってください。- オーバーライド:
equals
、クラスObject
- パラメータ:
obj
- このオブジェクトと等しいかどうかが判定されるオブジェクト。- 戻り値:
- 2つのPermissionオブジェクトが等しい場合はtrue
- 関連項目:
Object.hashCode()
、HashMap
-
hashCode
public abstract int hashCode()
Permissionオブジェクトのハッシュ・コード値を返します。次に、Permissionオブジェクトの必要な
hashCode
動作を示します。- 同じPermissionオブジェクトに対してJavaアプリケーションの実行時に複数回呼び出すたびに、
hashCode
メソッドは一貫して同じ整数を返さなければならない。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。 equals
メソッドに基づいて2つのPermissionオブジェクトが等しい場合は、2つのPermissionオブジェクトでそれぞれhashCode
メソッドを呼び出したとき、結果として同じ整数が生成されなければなりません。
- オーバーライド:
hashCode
、クラスObject
- 戻り値:
- このオブジェクトのハッシュ・コード値。
- 関連項目:
Object.equals(java.lang.Object)
,System.identityHashCode(java.lang.Object)
- 同じPermissionオブジェクトに対してJavaアプリケーションの実行時に複数回呼び出すたびに、
-
getName
public final String getName()
Permissionの名前を返します。 たとえばjava.io.FilePermission
の場合は、名前はパス名になります。- 戻り値:
- Permissionの名前
-
getActions
public abstract String getActions()
アクションをStringで返します。 これは抽象メソッドなので、必要性が生じるまでサブクラスはString表現の作成を遅延させることができます。 サブクラスは常に、正規形式と見なす形式でアクションを返さなければいけません。 たとえば、2つのFilePermissionオブジェクトは次の方法で作成されます。perm1 = new FilePermission(p1,"read,write"); perm2 = new FilePermission(p2,"write,read");
getActions
メソッドが呼び出されると、どちらも「read,write」を返します。- 戻り値:
- このPermissionのアクション。
-
newPermissionCollection
public PermissionCollection newPermissionCollection()
指定されたPermissionオブジェクトの空のPermissionCollectionを返します。ただし、定義済みのものがない場合はnullを返します。PermissionCollection.implies
メソッドが呼び出されたときに、正しいセマンティックスを提供するために、特定のPermissionCollectionオブジェクトにそのアクセス権を格納する必要がある場合、Permissionクラスのサブクラスはこのメソッドをオーバーライドします。 nullが返された場合、このメソッドの呼出し側はこの種類のアクセス権を、選択するどのPermissionCollectionに対しても自由に格納できます(Hashtableを使うもの、Vectorを使うものなど)。- 戻り値:
- この型のPermissionの新規PermissionCollectionオブジェクト。定義済みのものがない場合はnull。
-
-