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, 2013, Oracle and/or its affiliates. All rights reserved.