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項目すべてが満たされた場合にのみオペレーションが許可されます。
クラス名、メンバー、オブジェクト名は、単一の文字列として同時に書き込めます。この文字列が、このアクセス権のnameになります。 アクセス権の名前は、getName()によって返される文字列です。 文字列の形式は次のとおりです。
className#member[objectName]
オブジェクト名は、ObjectNameの通常構文によって書き込まれます。 オブジェクト名には、]を含む有効な文字を含めることができます。 文字列の末尾の文字は]です。
className、member、objectNameは省略可能です。 memberが省略された場合、#も省略されます(ただし必ずしも省略されるとは限らない)。 objectNameが省略された場合、[]も省略されます(ただし必ずしも省略されるとは限らない)。 これら3つの項目全部を省略することはできません。つまり、nameを空文字列にすることはできません。
className、member、objectNameには、null値を表す文字「-」を指定できます。 null値はすべての値(別のnull値を含む)に含まれますが、その他の値を含むことはありません。
カンマで区切られた形式のアクション・リストでは、各アクションの前後にスペースを挿入できます。
| コンストラクタ | 説明 |
|---|---|
MBeanPermission(String name, String actions) |
指定されたターゲット名およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。
|
MBeanPermission(String className, String member, ObjectName objectName, String actions) |
指定されたターゲット名(クラス名、メンバー、オブジェクト名)およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。
|
| 修飾子と型 | メソッド | 説明 |
|---|---|---|
boolean |
equals(Object obj) |
2つのMBeanPermissionオブジェクトが同じであるかどうかを判定します。
|
String |
getActions() |
アクションの「正規の文字列表現」を返します。
|
int |
hashCode() |
このオブジェクトのハッシュ・コード値を返します。
|
boolean |
implies(Permission p) |
このMBeanPermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。
|
checkGuard, getName, newPermissionCollection, toStringpublic MBeanPermission(String name, String actions)
指定されたターゲット名およびアクションを持つ新しいMBeanPermissionオブジェクトを作成します。
ターゲット名は、「className#member[objectName]」の形式になります(各部分は任意)。 空文字列やnullは指定できません。
アクション・パラメータには、ターゲット名に対して付与された必要なアクションのリスト(カンマ区切り形式)が含まれます。 空文字列やnullは指定できません。
name - トリプレット「className#member[objectName]」。actions - アクション文字列。IllegalArgumentException - nameまたはactionsが無効な場合。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 - アクション文字列。public String getActions()
getActions、クラスPermissionpublic int hashCode()
hashCode、クラスPermissionObject.equals(java.lang.Object), System.identityHashCode(java.lang.Object)public boolean implies(Permission p)
このMBeanPermissionオブジェクトに、指定されたアクセス権が含まれているかどうかを判定します。
つまり、このメソッドは次の場合にtrueを返します。
このオブジェクトのclassNameが「*」の場合、pのclassNameは常にこれに一致します。 「a.*」の場合、pのclassNameが「a.」で始まるならば、これに一致します。
このオブジェクトのmemberが「*」の場合、pのmemberは常にこれに一致します。
このオブジェクトのobjectName n1がオブジェクト名パターンである場合、n1.equals(n2)またはn1.apply(n2)ならば、pのobjectName n2は、これに一致します。
queryMBeansアクションを含むアクセス権は、queryNamesも含むものと見なされます。
implies、クラスPermissionp - チェック対象のアクセス権。public boolean equals(Object obj)
equals、クラスPermissionobj - このオブジェクトと等しいかどうかが判定されるオブジェクト。Object.hashCode()、HashMap バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。