モジュール java.management
パッケージ javax.management

クラスMBeanPermission

java.lang.Object
java.security.Permission
javax.management.MBeanPermission
すべての実装されたインタフェース:
Serializable, Guard

public class MBeanPermission extends Permission

MBeanServerオペレーションのアクセスを制御するアクセス権です。 System.setSecurityManager(java.lang.SecurityManager)でセキュリティ・マネージャが設定されている場合、MBeanサーバー上で何らかのオペレーションを実行するためには、通常、そのオペレーションに適したMBeanPermissionが呼出し元のアクセス権として含まれていなければいけません。 詳細については、MBeanServerインタフェースのドキュメントを参照してください。

その他のPermissionオブジェクトの場合と同様に、MBeanPermissionは、ユーザーに付与されているアクセス権、またはユーザーが必要とするアクセス権を表します。 重要なオペレーションを実行する際にはアクセス権のチェックが行われますが、このとき、必要なアクセス権を表すMBeanPermissionが構築されます。 ユーザーに付与されているアクセス権に、ユーザーが必要とするアクセス権が含まれている場合に限り、オペレーションは許可されます。

MBeanPermissionには、次の4項目の情報が含まれます。

  • アクション ユーザーが必要とするアクセス権の場合、下記のリストのいずれかのアクション。 ユーザーに付与されているアクセス権の場合、カンマで区切られた形式のアクション・リストまたは* (すべてのアクション)。

    アクションはgetActions()によって返される。

  • クラス名

    ユーザーが必要とするアクセス権の場合、ユーザーがアクセスしようとしているMBeanのクラス名。これは、MBeanServer.getMBeanInfo(name).getClassName()によって返される。 特定の操作ではクラス名を参照せず、その場合クラス名はnull。

    ユーザーに付与されているアクセス権の場合、空またはクラス名パターン クラス名パターンは、ドット区切り形式のクラス名のJava規約に従った文字列。 末尾に「.*」を指定することにより、「.*」の前の文字列で始まるすべてのクラスへのアクセスが付与される。 たとえば、「javax.management.*」の場合、ほかのクラスの間でjavax.management.MBeanServerDelegateおよびjavax.management.timer.Timerへのアクセスが付与される。

    クラス名パターンとして、空文字列または「*」を指定することもできる。どちらの場合も、すべてのクラスへのアクセスが付与される。

  • メンバー

    ユーザーが必要とするアクセス権の場合、ユーザーがアクセスしようとしている属性またはオペレーションの名前。 属性やオペレーションを参照しないオペレーションの場合、メンバーはnull。

    ユーザーに付与されているアクセス権の場合、ユーザーがアクセスできる属性またはオペレーションの名前。空文字列または「*」が指定された場合、すべてのメンバーへのアクセスが付与される。

  • オブジェクト名

    ユーザーが必要とするアクセス権の場合、ユーザーがアクセスしようとしているMBeanのObjectName 単一のMBeanを参照しないオペレーションの場合、null。 オブジェクト名パターンには当てはまらない。

    ユーザーに付与されているアクセス権の場合、ユーザーがアクセスできるMBean (複数可)のObjectName オブジェクト名パターンを指定した場合、パターンに一致する名前を持つすべてのMBeanにアクセスが付与される。 空文字列を指定した場合、名前には関係なくすべてのMBeanにアクセスが付与される。

MBeanPermissionを付与されている場合は、この4項目すべてが満たされた場合にのみオペレーションが許可されます。

クラス名、メンバーおよびオブジェクト名はまとめて単一の文字列として書き込むことができ、これはこのアクセス権の名前になります。 アクセス権の名前は、getName()で返される文字列です。 文字列の形式:

className#member[objectName]

オブジェクト名は、ObjectNameの通常構文によって書き込まれます。 オブジェクト名には、]を含む有効な文字を含めることができます。 文字列の末尾の文字は]です。

1つ以上のclassNamememberまたはobjectNameは省略できます。 memberを省略した場合、#も省略できます(ただしそうする必要はありません)。 objectNameを省略した場合、[]も省略できます(ただしそうする必要はありません)。 3つすべての項目を省略することは適切でなく、それは空の文字列の名前を持つことになります。

classNamememberobjectNameには、null値を表す文字「-」を指定できます。 null値はすべての値(別のnull値を含む)に含まれますが、その他の値を含むことはありません。

次のアクションを選択できます。

  • addNotificationListener
  • getAttribute
  • getClassLoader
  • getClassLoaderFor
  • getClassLoaderRepository
  • getDomains
  • getMBeanInfo
  • getObjectInstance
  • instantiate
  • invoke
  • isInstanceOf
  • queryMBeans
  • queryNames
  • registerMBean
  • removeNotificationListener
  • setAttribute
  • unregisterMBean

カンマで区切られた形式のアクション・リストでは、各アクションの前後にスペースを挿入できます。

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

    コンストラクタ
    コンストラクタ
    説明
    MBeanPermission(String name, String actions)
    指定されたターゲット名およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。
    MBeanPermission(String className, String member, ObjectName objectName, String actions)
    指定されたターゲット名(クラス名、メンバー、オブジェクト名)およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    boolean
    2つのMBeanPermissionオブジェクトが同じであるかどうかを判定します。
    アクションの「正規の文字列表現」を返します。
    int
    このオブジェクトのハッシュ・コード値を返します。
    boolean
    このMBeanPermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。

    クラス java.security.Permissionで宣言されたメソッド

    checkGuard, getName, newPermissionCollection, toString

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

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

    • MBeanPermission

      public MBeanPermission(String name, String actions)

      指定されたターゲット名およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。

      ターゲット名は、「className#member[objectName]」の形式になります(各部分は任意)。 空文字列やnullは指定できません。

      アクション・パラメータには、ターゲット名に対して付与された必要なアクションのリスト(カンマ区切り形式)が含まれます。 空文字列やnullは指定できません。

      パラメータ:
      name - トリプレット「className#member[objectName]」。
      actions - アクション文字列。
      例外:
      IllegalArgumentException - nameまたはactionsが無効な場合。
    • MBeanPermission

      public MBeanPermission(String className, String member, ObjectName objectName, String actions)

      指定されたターゲット名(クラス名、メンバー、オブジェクト名)およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。

      クラス名、メンバー、およびオブジェクト名のパラメータにより、「className#member[objectName]」の形式のターゲット名が定義されます(各部分は任意)。 作成されたMBeanPermission上でPermission.getName()を実行すると、この名前が出力されます。

      アクション・パラメータには、ターゲット名に対して付与された必要なアクションのリスト(カンマ区切り形式)が含まれます。 空文字列やnullは指定できません。

      パラメータ:
      className - このアクセス権が適用されるクラス名。 nullまたは"-"の場合もあり、任意のクラス名に含まれるが、その他のクラス名を含むことはないクラス名を表す。
      member - このアクセス権が適用されるメンバー。 nullまたは"-"の場合もあり、任意のメンバーに含まれるが、その他のメンバーを含むことはないメンバーを表す。
      objectName - このアクセス権が適用されるオブジェクト名。 nullの場合もあり、任意のオブジェクト名に含まれるが、その他のオブジェクト名を含むことはないオブジェクト名を表す。
      actions - アクション文字列。
  • メソッドの詳細

    • getActions

      public String getActions()
      アクションの「正規の文字列表現」を返します。 つまり、このメソッドは常に、アルファベット順で現在のアクションを返します。
      定義:
      getActions 、クラス:  Permission
      戻り値:
      アクションの正規の文字列表現。
    • hashCode

      public int hashCode()
      このオブジェクトのハッシュ・コード値を返します。
      定義:
      hashCode 、クラス:  Permission
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • implies

      public boolean implies(Permission p)

      このMBeanPermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。

      つまり、このメソッドは次の場合にtrueを返します。

      • pがMBeanPermissionのインスタンスであり、かつ
      • pがnullのclassNameを持つか、pのclassNameがこのオブジェクトのclassNameに一致しており、かつ
      • pがnullのメンバーを持つか、pのメンバーがこのオブジェクトのメンバーに一致しており、かつ
      • pがnullのオブジェクト名を持つか、pのオブジェクト名がこのオブジェクトのオブジェクト名に一致しており、かつ
      • pのアクションがこのオブジェクトのアクションのサブセットである

      このオブジェクトのclassNameが「*」の場合、pのclassNameは常にこれに一致します。 a.*」の場合、pのclassNameが「a.」で始まるならば、これに一致します。

      このオブジェクトのmemberが「*」の場合、pのmemberは常にこれに一致します。

      このオブジェクトのobjectName n1がオブジェクト名パターンである場合、n1.equals(n2)またはn1.apply(n2)ならば、pのobjectName n2は、これに一致します。

      queryMBeansアクションを含むアクセス権は、queryNamesも含むものと見なされます。

      定義:
      implies 、クラス:  Permission
      パラメータ:
      p - チェック対象のアクセス権。
      戻り値:
      指定されたアクセス権がこのオブジェクトに含まれる場合はtrue、そうでない場合はfalse。
    • equals

      public boolean equals(Object obj)
      2つのMBeanPermissionオブジェクトが同じであるかどうかを判定します。 objがMBeanPermissionであり、オブジェクトと同じ名前とアクションを持っているかどうかを判定します。
      定義:
      equals 、クラス:  Permission
      パラメータ:
      obj - このオブジェクトと等しいかどうかが判定されるオブジェクト。
      戻り値:
      objがMBeanPermissionであり、MBeanPermissionオブジェクトと同じ名前とアクションを持っている場合はtrue。
      関連項目: