| Oracle® Fusion Middleware Oracle WebLogic Serverセキュリティ・プロバイダの開発 11g リリース1(10.3.5) B61623-03 |
|
![]() 前 |
MBean定義ファイル(MDF) はWebLogic MBeanMakerユーティリティへの入力ファイルです。WebLogic MBeanMakerユーティリティは、このファイルを使用してカスタム・セキュリティ・プロバイダを管理するためのMBeanタイプを作成します。MDFは、単一のMBeanタイプを記述する有効な整形式XMLファイルとしてフォーマットされる必要があります。以下の節では、有効なMDFで使用可能なすべての要素と属性について説明します。
すべてのMDFにはMBeanTypeというルート要素が1つ含まれていなければなりません。この要素の構文は次のとおりです。
<MBeanType Name= string optional_attributes>
subelements
</MBeanType>
MBeanType要素は、MBeanタイプのプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します)。他の属性は省略可能です。
以下の例は、MBeanType (ルート)要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany"> <MBeanAttribute Name="MyAttr" Type="java.lang.String" Default="Hello World"/> </MBeanType>
MBeanType (ルート)要素内に指定されている属性は、そのMBeanタイプからインスタンス化されるすべてのMBeanに適用されます。特定のMBeanインスタンスの属性をオーバーライドするには、MBeanAttributeサブ要素で属性を指定する必要があります。詳細については、「MBeanAttributeサブ要素」を参照してください。
表A-1では、MBeanType(ルート)要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのか、それともJMXの標準属性なのかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-1 MBeanType(ルート)要素の属性
| 属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
|---|---|---|---|
|
|
Oracle拡張機能 |
|
値が |
|
|
Oracle拡張機能 |
|
当該MBeanタイプが非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
|
JMX仕様 |
String型 |
当該MBeanタイプに関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 注意: ユーザー・インタフェースに表示される説明を指定するには、 |
|
|
JMX仕様 |
String型 |
ユーザー・インタフェースに表示されるMBeanタイプのインスタンス識別用の名前。タイプXのインスタンスの場合、デフォルト |
|
|
Oracle拡張機能 |
パス名 |
このMBeanタイプが拡張する完全修飾MBeanタイプ名。 |
|
|
Oracle拡張機能 |
カンマ区切り リスト |
このMBeanタイプを実装する完全修飾MBeanタイプ名からなるカンマ区切りリスト。 「Extends」も参照してください。 |
|
|
JMX仕様 |
String型 |
当該MBeanタイプのプログラム上の内部的な名前を指定する必須属性。 |
|
|
Oracle拡張機能 |
String型 |
当該MBeanタイプのパッケージ名を指定し、WebLogic MBeanMakerによって作成されるクラス・ファイルの場所を決定します。この属性を指定しない場合には、MBeanタイプはJavaデフォルト・パッケージに格納されます。 注意: パッケージ名が異なっている限り、MBeanタイプ名は同じ名前でもかまいません。 |
|
|
JMX仕様 |
|
永続化がどのように行われるかを、以下のいずれかで指定します。
注意: MBeanType要素内で指定された場合、この属性値は、個々のMBeanAttributeサブ要素内のあらゆる設定をオーバーライドします。 |
MBeanタイプ内の属性ごとに、MBeanAttributeサブ要素のインスタンスを1つ記述する必要があります。MBeanAttributeサブ要素の形式は次のとおりとします。
<MBeanAttribute Name=string optional_attributes />
MBeanAttributeサブ要素は、MBeanタイプのJava属性のプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します)。他の属性は省略可能です。
以下の例は、MBeanType要素内のMBeanAttributeサブ要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany">
<MBeanAttribute Name= "WhenToCache"
Type="java.lang.String"
LegalValues="'cache-on-reference','cache-at-initialization','cache-never'"
Default= "cache-on-reference"
/>
</MBeanType>
MBeanAttributeサブ要素内に指定されている属性は、特定のMBeanインスタンスに適用されます。あるMBeanタイプからインスタンス化されるすべてのMBeanの属性を設定するには、MBeanType (ルート)要素内に属性を指定する必要があります。詳細については、「MBeanType (ルート)要素」を参照してください。
表A-2では、MBeanAttributeサブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-2 MBeanAttributeサブ要素の属性
| 属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
|---|---|---|---|
|
|
JMX仕様 |
String型 |
この属性を指定しない場合、値は |
|
|
Oracle拡張機能 |
|
当該MBean属性が非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
|
JMX仕様 |
String型 |
当該MBean属性に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 注意: ユーザー・インタフェース内に表示される説明を指定するには、DisplayName属性を使用します。 |
|
|
Oracle拡張機能 |
trueまたはfalse |
動的MBeanに対する変更が、サーバーを再起動しなくても有効になります。デフォルトでは、すべてのカスタム・セキュリティ・プロバイダMBean属性は動的ではありません。 8.1および7.0では、すべてのカスタム・セキュリティ・プロバイダMBean属性は動的です。 |
|
|
Oracle拡張機能 |
|
値が |
|
|
Oracle拡張機能 |
|
WebLogic MBeanMakerで生成されるMBeanインタフェースのかわりに使用すべきインタフェースのクラス名。
「Type」が |
|
|
JMX仕様 |
|
生成されるJavaインタフェースでMBean属性のブール値にアクセスするのに( |
|
|
Oracle拡張機能 |
|
現在の |
|
|
Oracle拡張機能 |
カンマ区切りリスト |
現在の 注意: このリスト内の要素は、サブ要素の |
|
|
Oracle拡張機能 |
Integer型 |
数値型のMBean属性タイプに限り、属性の最大値(その値を含む)を表す数値を指定します。この属性を指定しない場合には、値はデータ型の許容最大値まで可能です。 |
|
|
Oracle拡張機能 |
Integer型 |
数値型のMBean属性タイプに限り、属性の最小値(その値を含む)を表す数値を指定します。この属性を指定しない場合には、値はデータ型の許容最小値まで可能です。 |
|
|
JMX仕様 |
String型 |
当該MBean属性のプログラム上の内部的な名前を指定する必須属性。 |
|
|
JMX仕様 |
|
この属性のデータ型の完全修飾クラス名。これに対応するクラスがクラス・パスに存在していなければなりません。この属性を指定しない場合、値は
|
|
|
JMX仕様 |
|
値が
|
MBeanConstructorサブ要素は現在のところ、WebLogic MBeanMakerでは使用されておらず、Java Management eXtensions 1.0仕様(http://jcp.org/aboutJava/communityprocess/final/jsr003/index.html)に準拠し、上位互換性を保つためにサポートされているだけです。したがって、ここでは、MBeanConstructorサブ要素(およびそれに関連するMBeanConstructorArgサブ要素)の属性の詳細については説明を省略します。
MBeanタイプでサポートされている操作(メソッド)ごとに、MBeanOperationサブ要素のインスタンスを1つ記述する必要があります。MBeanOperationの形式は次のとおりとします。
<MBeanOperation Name=string optional_attributes >
<MBeanOperationArg Name=string optional_attributes />
</MBeanOperation>
MBeanOperationサブ要素は、その操作のプログラム上の内部的な名前を指定するName属性を含む必要があります。(ユーザー・インタフェース内に表示される名前を指定するには、DisplayName属性を使用します)。他の属性は省略可能です。
MBeanOperation要素内には、その操作(メソッド)で使用される引数ごとにMBeanOperationArgサブ要素のインスタンスを1つ記述する必要があります。MBeanOperationArgの形式は次のとおりとします。
<MBeanOperationArg Name=string optional_attributes />
Name属性には操作の名前を指定する必要があります。MBeanOperationArgのオプション属性はTypeだけで、これは、特定タイプのJava属性の動作を指定するJavaクラス名を与えるものです。この属性を指定しない場合、値はjava.lang.Stringと見なされます。
次の例は、MBeanType要素内のMBeanOperationサブ要素とMBeanOperationArgサブ要素を簡略化して示したものです。
<MBeanType Name="MyMBean" Package="com.mycompany">
<MBeanOperation
Name= "findParserSelectMBeanByKey"
ReturnType="XMLParserSelectRegistryEntryMBean"
Description="Given a public ID, system ID, or root element tag, returns the
object name of the corresponding XMLParserSelectRegistryEntryMBean."
>
<MBeanOperationArg Name="publicID" Type="java.lang.String"/>
<MBeanOperationArg Name="systemID" Type="java.lang.String"/>
<MBeanOperationArg Name="rootTag" Type="java.lang.String"/>
</MBeanOperation>
</MBeanType>
表A-3では、MBeanOperationサブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-3 MBeanOperationサブ要素の属性
| 属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
|---|---|---|---|
|
|
Oracle拡張機能 |
|
当該MBean操作が非推奨扱いになっていることを示します。この情報は生成されたJavaソースに表示されると共に、管理アプリケーションでの使用を想定して |
|
|
JMX仕様 |
String型 |
当該MBean操作に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 注意: ユーザー・インタフェース内に表示される説明を指定するには、DisplayName属性を使用します。 |
|
|
JMX仕様 |
String型 |
当該MBean操作のプログラム上の内部的な名前を指定する必須属性。 |
|
|
JMX仕様 |
String型 |
当該操作から返されるJavaオブジェクトの完全修飾クラス名を表す文字列。
|
表A-4では、MBeanOperationArgサブ要素で使用可能な属性について説明します。「JMX仕様/Oracle拡張機能」列は、当該属性がJMX仕様に対するOracle拡張機能なのかどうかを示します。なお、Oracle拡張機能は他のJava EE Webサーバー上では動作しない場合があることに注意してください。
表A-4 MBeanOperationArgサブ要素の属性
| 属性 | JMX仕様/Oracle拡張機能 | 指定可能な値 | 説明 |
|---|---|---|---|
|
|
JMX仕様 |
String型 |
当該MBean操作の引数に関連付けられる任意の文字列で、生成されたクラスのJavadocなど、様々な場所に現れます。デフォルト値または仮定される値はありません。 |
|
|
JMX仕様 |
String型 |
当該引数の名前を指定する必須属性。 |
|
|
JMX仕様 |
String型 |
当該MBean操作の引数のデータ型。この属性を指定しない場合、値は
|
MBean定義ファイル(MDF)は、JDK例外の型またはweblogic.management.utils例外の型のみを使用する必要があります。例A-1で示したコードの一部を次に示します。MBeanOperationサブ要素内でMBeanExceptionが使用されています。
<MBeanOperation Name = "registerPredicate" ReturnType = "void" Description = "Registers a new predicate with the specified class name." > <MBeanOperationArg Name = "predicateClassName" Type = "java.lang.String" Description = "The name of the Java class that implements the predicate." /> <MBeanException>weblogic.management.utils.InvalidPredicateException</MBeanException> <MBeanException>weblogic.management.utils.AlreadyExistsException</MBeanException> </MBeanOperation>
例A-1と例A-2に、この付録で説明した属性の多くを使用したMBean定義ファイル(MDF)の例を示します。例A-1には、述語を管理し、述語とそれらの引数に関するデータを読み取るMBeanタイプを生成するためのMDFを示します。例A-2には、WebLogic (デフォルト)認可プロバイダのMBeanタイプを生成するためのMDFを示します。
例A-1 PredicateEditor.xml
<?xml version="1.0" ?>
<!DOCTYPE MBeanType SYSTEM "commo.dtd">
<MBeanType
Name = "PredicateEditor"
Package = "weblogic.security.providers.authorization"
Implements = "weblogic.security.providers.authorization.PredicateReader"
PersistPolicy = "OnUpdate"
Abstract = "false"
Description = "This MBean manages predicates and reads data about predicates and their arguments.<p>"
>
<MBeanOperation
Name = "registerPredicate"
ReturnType = "void"
Description = "Registers a new predicate with the specified class name."
>
<MBeanOperationArg
Name = "predicateClassName"
Type = "java.lang.String"
Description = "The name of the Java class that implements the predicate."
/>
<MBeanException>weblogic.management.utils.InvalidPredicateException</MBeanException>
<MBeanException>weblogic.management.utils.AlreadyExistsException</MBeanException>
</MBeanOperation>
<MBeanOperation
Name = "unregisterPredicate"
ReturnType = "void"
Description = "Unregisters the currently registered predicate." >
<MBeanOperationArg
Name = "predicateClassName"
Type = "java.lang.String"
Description = "The name of the Java class that implements predicate to be unregistered."
/>
<MBeanException>weblogic.management.utils.NotFoundException</MBeanException>
</MBeanOperation>
</MBeanType>
例A-2 DefaultAuthorizer.xml
<?xml version="1.0" ?> <!DOCTYPE MBeanType SYSTEM "commo.dtd"> <MBeanType Name = "DefaultAuthorizer" DisplayName = "DefaultAuthorizer" Package = "weblogic.security.providers.authorization" Extends ="weblogic.management.security.authorization.DeployableAuthorizer" Implements = "weblogic.management.security.authorization.PolicyEditor, weblogic.security.providers.authorization.PredicateEditor" PersistPolicy = "OnUpdate" Description = "This MBean represents configuration attributes for the WebLogic Authorization provider. <p>" > <MBeanAttribute Name = "ProviderClassName" Type = "java.lang.String" Writeable = "false" Default""weblogic.security.providers.authorization.DefaultAuthorizationProviderImpl"" Description = "The name of the Java class used to load the WebLogic Authorization provider." /> <MBeanAttribute Name = "Description" Type = "java.lang.String" Writeable = "false" Default = ""Weblogic Default Authorization Provider"" Description = "A short description of the WebLogic Authorization provider." /> <MBeanAttribute Name = "Version" Type = "java.lang.String" Writeable = "false" Default = ""1.0"" Description = "The version of the WebLogic Authorization provider." /> </MBeanType>