WebLogic セキュリティ プロバイダの開発

     前  次    新しいウィンドウで目次を開く     
ここから内容の開始

MBean 定義ファイル (MDF) 要素の構文

MBean 定義ファイル (MDF) は WebLogic MBeanMaker ユーティリティへの入力ファイルです。WebLogic MBeanMaker ユーティリティは、このファイルを使用してカスタム セキュリティ プロバイダを管理するための MBean タイプを作成します。MDF は、単一の MBean タイプを記述する有効な整形式 XML ファイルとしてフォーマットされる必要があります。以下の節では、有効な MDF で使用可能なすべての要素と属性について説明します。

 


MBeanType (ルート) 要素

すべての 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 仕様/BEA 拡張機能」カラムは、当該属性が JMX 仕様に対する BEA 拡張機能なのか、それとも JMX の標準属性なのかを示します。なお、BEA 拡張機能は他の J2EE Web サーバ上では動作しない場合があることに注意してください。

表 A-1 MBeanType (ルート) 要素の属性
属性
JMX 仕様
/BEA 拡張機能
指定可能な値
説明 :
Abstract
BEA 拡張機能
true または false
値が true の場合には、当該 MBean タイプは (Java 抽象クラスと同様に) インスタンス化できないことを意味する。ただし、他の MBean タイプは当該 MBean タイプの属性と操作を継承できる。true を指定した場合には、管理タスクを実行するための非抽象 MBean タイプを別途作成する必要がある。この属性の値を指定しない場合は、false と見なされる。
非推奨
BEA 拡張機能
true または false
当該 MBean タイプが非推奨扱いになっていることを示す。この情報は生成された Java ソースに表示されると共に、管理アプリケーションでの使用を想定して ModelMBeanInfo オブジェクトにも格納される。この属性を指定しない場合、値は false と見なされる。
Description
JMX 仕様
String
当該 MBean タイプに関連付けられる任意の文字列で、生成されたクラスの Javadoc など、さまざまな場所に現れる。デフォルト値または仮定される値はない。

注意 : ユーザ インタフェース内に表示される説明を指定するには、DisplayName 属性を使用する。

DisplayName
JMX 仕様
String
ユーザ インタフェースに表示される MBean タイプのインスタンス識別用の名前。タイプ X のインスタンスの場合、デフォルト DisplayName は「タイプ X のインスタンス」となる。通常、この値はインスタンス作成時にオーバーライドされる。
Extends
BEA 拡張機能
パス名
この MBean タイプが拡張する完全修飾 MBean タイプ名。
Implements
BEA 拡張機能
カンマで区切っ
たリスト
この MBean タイプを実装する完全修飾 MBean タイプ名からなるカンマ区切りリスト。
Extends」も参照。
Name
JMX 仕様
String
当該 MBean タイプのプログラム上の内部的な名前を指定する必須属性。
パッケージ化する
BEA 拡張機能
String
当該 MBean タイプのパッケージ名を指定し、WebLogic MBeanMaker によって作成されるクラス ファイルの場所を決定する。この属性を指定しない場合には、MBean タイプは Java デフォルト パッケージに格納される。

注意 : パッケージ名が異なっている限り、MBean タイプ名は同じ名前でもかまわない。

PersistPolicy
JMX 仕様
OnUpdate :
永続化がどのように行われるかを、以下のいずれかで指定する。
OnUpdate : 属性は更新のたびに格納される。
注意 : MBeanType 要素内で指定された場合、この属性値は、個々の MBeanAttribute 下位要素内のあらゆる設定をオーバーライドする。

 


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 仕様/BEA 拡張機能」カラムは、当該属性が JMX 仕様に対する BEA 拡張機能なのかどうかを示します。なお、BEA 拡張機能は他の J2EE Web サーバ上では動作しない可能性があることに注意してください。

表 A-2 MBeanAttribute 下位要素の属性
属性
JMX 仕様
/BEA 拡張機能
指定可能な値
説明 :
デフォルト値 :
JMX 仕様
String
MBeanAttribute 下位要素からゲッター メソッドまたはキャッシュ済みの値が提供されない場合に返すべき値。文字列は、この属性に指定されたデータ型と互換性を持つ型のオブジェクトに評価しなければならない Java 式を表す。
この属性を指定しない場合、値は null と見なされる。この想定値を使用し、かつ LegalNull 属性を false に設定してある場合には、WebLogic MBeanMaker と WebLogic Server から例外が送出される。
非推奨
BEA 拡張機能
true または false
当該 MBean 属性が非推奨扱いになっていることを示す。この情報は生成された Java ソースに表示されると共に、管理アプリケーションでの使用を想定して ModelMBeanInfo オブジェクトにも格納される。この属性を指定しない場合、値は false と見なされる。
Description
JMX 仕様
String
当該 MBean 属性に関連付けられる任意の文字列で、生成されたクラスの Javadoc など、さまざまな場所に現れる。デフォルト値または仮定される値はない。

注意 : ユーザ インタフェース内に表示される説明を指定するには、DisplayName 属性を使用する。

Dynamic
BEA 拡張機能
true または false
動的 MBean に対する変更が、サーバを再起動しなくても有効になる。デフォルトでは、すべてのカスタム セキュリティ プロバイダ MBean 属性は動的ではない。
8.1 および 7.0 では、すべてのカスタム セキュリティ プロバイダ MBean 属性は動的。
Encrypted
BEA 拡張機能
true または false
値が true の場合、この MBean 属性は設定されると暗号化されることを示す。この属性を指定しない場合、値は false と見なされる。
InterfaceType
BEA 拡張機能
String
WebLogic MBeanMaker で生成される MBean インタフェースの代わりに使用すべきインタフェースのクラス名。InterfaceType に指定できる値は以下のとおり。
  • int
  • long
  • float
  • double
  • char
  • byte
「Type」が java.lang.Stringjava.lang.String[]、または java.lang.Properties の場合は指定しない。
IsIs
JMX 仕様
true または false
生成される Java インタフェースで MBean 属性のブール値にアクセスするのに (get<AttributeName> メソッドではなく) JMX is<AttributeName> メソッドを使用するかどうかを指定する。この属性を指定しない場合、値は false と見なされる。
LegalNull
BEA 拡張機能
true または false
現在の MBeanAttribute 下位要素が null を値として取り得るかどうかを指定する。この属性を指定しない場合、値は true と見なされる。
LegalValues
BEA 拡張機能
カンマで区切っ
たリスト
現在の MBeanAttribute 下位要素の取り得る値の固定集合を指定する。この属性を指定しない場合、MBean 属性では、Type 属性で指定されているタイプの任意の値を指定できる。

注意 : このリスト内の要素は、下位要素の Type 属性で指定されるデータ型に変換可能なものでなければならない。

Max
BEA 拡張機能
Integer
数値型の MBean 属性タイプに限り、属性の最大値 (その値を含む) を表す数値を指定する。この属性を指定しない場合には、値はデータ型の許容最大値まで可能。
Min
BEA 拡張機能
Integer
数値型の MBean 属性タイプに限り、属性の最小値 (その値を含む) を表す数値を指定する。この属性を指定しない場合には、値はデータ型の許容最小値まで可能。
Name
JMX 仕様
String
当該 MBean 属性のプログラム上の内部的な名前を指定する必須属性。
Type
JMX 仕様
Java クラス名
この属性のデータ型の完全修飾クラス名。これに対応するクラスがクラスパスに存在していなければならない。この属性を指定しない場合、値は java.lang.String と見なされます。指定できる値は以下のとおり。
  • java.lang.Integer
  • java.lang.Integer[]
  • java.lang.Long
  • java.lang.Long[]
  • java.lang.Float
  • java.lang.Float[]
  • java.lang.Double
  • java.lang.Double[]
  • java.lang.Char
  • java.lang.Char[]
  • java.lang.Byte
  • java.lang.Byte[]
  • java.lang.String
  • java.lang.String[]
  • java.util.Properties
Writeable
JMX 仕様
true または false
値が true の場合には、MBean API を通じて MBeanAttribute の値を設定できるようになる。MBeanType または MBeanAttribute でこの属性を指定しない場合、値は true と見なされる。
MBeanType 要素に指定すると、この値は個々の MBeanAttribute 下位要素のデフォルトと見なされる。

 


MBeanConstructor 下位要素

MBeanConstructor 下位要素は現在のところ、WebLogic MBeanMaker では使用されておらず、Java Management eXtensions 1.0 仕様に準拠し、上位互換性を保つためにサポートされているだけです。したがって、ここでは、MBeanConstructor 下位要素 (およびそれに関連する MBeanConstructorArg 下位要素) の属性の詳細については説明を省略します。

 


MBeanOperation 下位要素

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 仕様/BEA 拡張機能」カラムは、当該属性が JMX 仕様に対する BEA 拡張機能なのかどうかを示します。なお、BEA 拡張機能は他の J2EE Web サーバ上では動作しない場合があることに注意してください。

表 A-3 MBeanOperation 下位要素の属性
属性
JMX 仕様
/BEA 拡張機能
指定可能な値
説明 :
非推奨
BEA 拡張機能
true または false
当該 MBean 操作が非推奨扱いになっていることを示す。この情報は生成された Java ソースに表示されると共に、管理アプリケーションでの使用を想定して ModelMBeanInfo オブジェクトにも格納される。この属性を指定しない場合、値は false と見なされる。
Description
JMX 仕様
String
当該 MBean 操作に関連付けられる任意の文字列で、生成されたクラスの Javadoc など、さまざまな場所に現れる。デフォルト値または仮定される値はない。

注意 : ユーザ インタフェース内に表示される説明を指定するには、DisplayName 属性を使用する。

Name
JMX 仕様
String
当該 MBean 操作のプログラム上の内部的な名前を指定する必須属性。
ReturnType
JMX 仕様
String
当該操作から返される Java オブジェクトの完全修飾クラス名を表す文字列。ReturnType は void または以下のいずれかになる。
  • int
  • int[]
  • long
  • long[]
  • float
  • float[]
  • double
  • double[]
  • char
  • char[]
  • byte
  • byte[]
  • java.lang.String
  • java.lang.String[]
  • java.util.Properties

表 A-4 では、MBeanOperationArg 下位要素で使用可能な属性について説明します。「JMX 仕様/BEA 拡張機能」カラムは、当該属性が JMX 仕様に対する BEA 拡張機能なのかどうかを示します。なお、BEA 拡張機能は他の J2EE Web サーバ上では動作しない場合があることに注意してください。

表 A-4 MBeanOperationArg 下位要素の属性
属性
JMX 仕様
/BEA 拡張機能
指定可能な値
説明 :
Description
JMX 仕様
String
当該 MBean 操作の引数に関連付けられる任意の文字列で、生成されたクラスの Javadoc など、さまざまな場所に現れる。デフォルト値または仮定される値はない。
Name
JMX 仕様
String
当該引数の名前を指定する必須属性。
Type
JMX 仕様
String
当該 MBean 操作の引数のデータ型。この属性を指定しない場合、値は java.lang.String と見なされます。Type に指定できる値は以下のとおり。
  • int
  • int[]
  • long
  • long[]
  • float
  • float[]
  • double
  • double[]
  • char
  • char[]
  • byte
  • byte[]
  • java.lang.String
  • java.lang.String[]
  • java.util.Properties

 


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>

 


例 : 有効な整形式 MBean 定義ファイル (MDF)

コード リスト 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.&lt;p&gt;"
>
<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. &lt;p&gt;"
>
<MBeanAttribute 
Name = "ProviderClassName"
Type = "java.lang.String"
Writeable = "false"
Default"&quot;weblogic.security.providers.authorization.DefaultAuthorizationProviderImpl&quot;"
Description = "The name of the Java class used to load the WebLogic Authorization provider."
/>
<MBeanAttribute 
Name = "Description"
Type = "java.lang.String"
Writeable = "false"
Default = "&quot;Weblogic Default Authorization Provider&quot;" Description = "A short description of the WebLogic Authorization provider." />
<MBeanAttribute 
Name = "Version"
Type = "java.lang.String"
Writeable = "false"
Default = "&quot;1.0&quot;"
Description = "The version of the WebLogic Authorization provider."
/>
</MBeanType>

  ページの先頭       前  次