モジュール java.base
パッケージ java.security

クラスPermission

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オブジェクトでは、アクセス権の名前はファイルまたはディレクトリのパス名で、アクション・リスト(読み込み、書き込みなど)は、指定されたファイル、またはディレクトリ内のファイルにどのアクションが許可されているかを指定します。 アクション・リストは、'このようなリストが必要です。名前付き権限("system.exit"など)を持っているか、または' tを寄付するjava.lang.RuntimePermissionなどのPermissionオブジェクトではオプションです。

各サブクラスによって実装しなければならない重要なメソッドは、Permissionsを比較するimpliesメソッドです。 基本的に、「permission p1はpermission p2を包含する」とは、permission p1が許可された場合にはpermission p2も当然許可されるということです。 したがって、これは適性テストではなく、サブセット・テストです。

Permissionオブジェクトは、作成後に変更できないという点で、Stringオブジェクトに似ています。 サブクラスは、一度作成されたアクセス権の状態を変更できるメソッドを提供することはできません。

導入されたバージョン:
1.2
関連項目:
  • コンストラクタのサマリー

    コンストラクタ
    コンストラクタ
    説明
    指定された名前でアクセス権を構築します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    アクセス権のガード・インタフェースを実装します。
    abstract boolean
    2つのPermissionオブジェクトの等価性をチェックします。
    abstract String
    アクションをStringとして返します。
    final String
    このPermissionの名前を返します。
    abstract int
    このPermissionオブジェクトのハッシュ・コード値を返します。
    abstract boolean
    implies(Permission permission)
    このオブジェクトのアクションによって、指定されたアクセス権のアクションが包含されるかどうかを判定します。
    指定されたPermissionオブジェクトの空のPermissionCollectionを返します。定義されていない場合はnullを返します。
    このPermissionを記述する文字列を返します。

    クラスjava.lang.Objectで宣言されたメソッド

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • コンストラクタの詳細

    • Permission

      public Permission(String name)
      指定された名前でアクセス権を構築します。
      パラメータ:
      name - 作成されるPermissionオブジェクトの名前。
  • メソッドの詳細

    • checkGuard

      public void checkGuard(Object object) throws SecurityException
      アクセス権のガード・インタフェースを実装します。 SecurityManager.checkPermissionメソッドが呼び出され、このアクセス権オブジェクトを検査対象として渡します。 アクセスが許可されると、何も行わずに復帰します。 それ以外の場合は、SecurityExceptionをスローします。
      定義:
      checkGuard、インタフェースGuard
      パラメータ:
      object - ガードのあるオブジェクト(現在は無視)。
      例外:
      SecurityException - セキュリティ・マネージャが存在し、セキュリティ・マネージャのcheckPermissionメソッドがアクセスを許可しない場合。
      関連項目:
    • 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 - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      両方のPermissionオブジェクトが等しい場合はtrue
      関連項目:
    • hashCode

      public abstract int hashCode()
      このPermissionオブジェクトのハッシュ・コード値を返します。

      Permissionオブジェクトに必要なhashCode動作は次のとおりです:

      • Javaアプリケーションの実行中に同じPermissionオブジェクトで複数回起動された場合、hashCodeメソッドは一貫して同じ整数を返す必要があります。 ただし、この整数は同じアプリケーションの実行ごとに同じである必要はありません。
      • 2つのPermissionオブジェクトがequalsメソッドに従って等しい場合、2つのPermissionオブジェクトのそれぞれでhashCodeメソッドをコールすると、同じ整数の結果が生成される必要があります。

      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • 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を返します。 クラスPermissionのサブクラスは、PermissionCollection.impliesメソッドが呼び出されたときに正しいセマンティクスを提供するために、特定のPermissionCollectionオブジェクトに権限を格納する必要がある場合、これをオーバーライドする必要があります。 nullが返された場合、このメソッドのコール元は、(ハッシュテーブルを使用するもの、ベクターを使用するものなど。)を選択するすべてのPermissionCollectionにこのタイプの権限を自由に格納できます。
      戻り値:
      このタイプのPermissionの新しいPermissionCollectionオブジェクト、または定義されていない場合はnull
    • toString

      public String toString()
      このPermissionを記述する文字列を返します。 規則では、クラス名、権限名およびアクションを次の形式で指定: アクション・リストがnullまたは空の場合は'("ClassName" "name" "actions") 'または'("ClassName" "name")'。
      オーバーライド:
      toString、クラスObject
      戻り値:
      このPermissionに関する情報。