B WebLogic MBeanMakerを使用してMBeanタイプを生成する
この付録の内容は次のとおりです。
ステップの概要
カスタム・セキュリティ・プロバイダのMBeanタイプを生成する前に、以下の作業が必要です。
この情報を理解し、設計に関する判断を下したら、次のステップを実行して、カスタム・セキュリティ・プロバイダのMBeanタイプを作成します。
ノート:
これらのステップの実行方法を示すために、複数のセキュリティ・プロバイダのサンプルを使用できます。
この節で説明する手順はすべて、Windows環境での作業を想定しています。
MBean定義ファイル(MDF)の作成
MBean定義ファイル(MDF)を作成するには、次のステップに従います。
-
サンプル・セキュリティ・プロバイダのMDFをテキスト・ファイルにコピーします。
サンプル・セキュリティ・プロバイダごとに、次のMDFファイル名を示します。
表B-1 MDFファイル名
サンプル・セキュリティ・プロバイダ・タイプ MDFファイル名 認証プロバイダ
SimpleSampleAuthenticator.xml
IDアサーション・プロバイダ
SampleIdentityAsserter.xml
認可プロバイダ
SimpleSampleAuthorizer.xml
裁決プロバイダ
現在、サンプル裁決プロバイダはありませんが、サンプル認証プロバイダ
SimpleSampleAuthenticator.xml
のMDFファイルを使用できます。ロール・マッピング・プロバイダ
SimpleSampleRoleMapper.xml
監査プロバイダ
SampleAuditor.xml
資格証明マッピング・プロバイダ
現在、サンプル資格証明マッピング・プロバイダはありませんが、サンプル認証プロバイダ
SimpleSampleAuthenticator.xml
のMDFファイルを使用できます。証明書パス・プロバイダ
現在、サンプル証明書パス・プロバイダはありませんが、サンプル認証プロバイダ
SimpleSampleAuthenticator.xml
のMDFファイルを使用できます。 -
MDFで
<MBeanType>
要素と<MBeanAttribute>
要素の内容をカスタム・セキュリティ・プロバイダに合せて修正します。次の点に注意してください。
-
カスタムIDアサーション・プロバイダを作成する場合は、
Base64DecodingRequired
属性をfalse
に設定するために、次の抜粋を考慮します。<MBeanAttribute Name = "Base64DecodingRequired" Type = "boolean" Writeable = "false" Default = "false" Description = "See MyIdentityAsserter-doc.xml." />
-
カスタム証明書パス・プロバイダを作成する場合は、CertPathBuilderMBeanまたはCertPathValidatorMBeanを拡張または実装する必要があります。
-
-
カスタム属性および操作(つまり、
<MBeanAttribute>
および<MBeanOperation>
要素)をMDFに追加します。 -
ファイルを保存します。
ノート:
MDF要素の構文についての詳細なリファレンスは、「MBean定義ファイル(MDF)要素の構文」に収められています。
WebLogic MBeanMakerを使用してMBeanタイプを生成する
MDFを作成したら、WebLogic MBeanMakerを使用してそれを実行できます。WebLogic MBeanMakerは現在のところコマンドライン・ユーティリティで、入力としてMDFを受け取り、次に示すような一連の中間Javaファイルを生成します。
-
MBeanインタフェース
-
MBean実装
-
関連するMBean情報ファイル
これらの中間ファイルが合わさって、カスタム・セキュリティ・プロバイダのMBeanタイプになります。
MBeanタイプの作成手順は、カスタム・セキュリティ・プロバイダの設計に応じて異なります。必要な設計に合わせて適切な手順を実行してください。
カスタム操作を追加しない場合
この項では、カスタム裁決プロバイダ、カスタム・ロール・マッピング・プロバイダ、およびカスタム監査プロバイダに適用します。
カスタム・セキュリティ・プロバイダのMDFがいかなるカスタム操作も含まない場合、次のステップを実行します。
オプショナルSSPI MBeanとカスタム操作を追加しない場合
この項では、次のカスタム・セキュリティ・プロバイダ・タイプに適用します。
-
認証プロバイダ
-
IDアサーション・プロバイダ
-
認可プロバイダ
-
資格証明マッピング・プロバイダ
-
証明書パス・プロバイダ
カスタム・セキュリティ・プロバイダのMDFがオプショナルSSPI MBeanを実装せず、かつ、いかなるカスタム操作も含まない場合、次のステップを実行します。
オプショナルSSPI MBeanまたはカスタム操作を追加する場合
この項では、すべてのカスタム・セキュリティ・プロバイダ・タイプに適用します。
カスタム・セキュリティ・プロバイダのMDFがオプショナルSSPI MBeanまたはカスタム操作を実装する場合、次の質問に答えながら手順を進めてください。
MBeanタイプを作成するのは初めてですか。その場合は、次のステップに従ってください:
-
新しいDOSシェルを作成します。
-
次のコマンドを入力します。
java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
前のコマンドで、
-
-DMDF
フラグは、WebLogic MBeanMakerがMDFをコードに変換する必要があることを示します。 -
xmlFileはXML MBean記述ファイル(MDF)を表します。
-
filesdirは、WebLogic MBeanMakerがMBeanタイプの中間ファイルを配置する場所を表します。
xmlfileが入力されるたびに、新しい出力ファイル群が生成されます。
-DcreateStubs=true
フラグを使用するたびに、既存のMBean実装ファイルがすべて上書きされます。ノート:
バージョン9.0以降のWebLogic Serverでは、
-DMDFDIR
<MDF directory name>
オプションを使用して、複数のMDFを格納するディレクトリを指定することもできます。旧バージョンのWebLogic Serverでは、WebLogic MBeanMakerで一度に処理されるMDFは1つだけです。そのため、特定のセキュリティ・プロバイダ・タイプのMDFが複数ある(たとえば認証プロバイダが複数ある)場合には、このプロセスを繰り返す必要がありました。 -
-
オプショナルSSPI MBeanをMDFに実装した場合は、次のステップに従います。
-
MBean実装ファイルを見つけます。
WebLogic MBeanMakerによって生成されるMBean実装ファイルには、
MBeanNameImpl.java
という名前が付けられます。たとえば、SampleAuthenticator
という名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.java
という名前になります。 -
MDFで実装したオプショナルSSPI MBeanごとに、各メソッドを実装します。オプショナルSSPI MBeanが継承するメソッドもすべて実装してください。
-
-
MDFにカスタム属性または操作を含めた場合は、メソッド・スタブを使用してメソッドを実装します。
-
ファイルを保存します。
既存のMBeanタイプの更新ですか。その場合は、次のステップに従ってください:
-
WebLogic MBeanMakerによって現在のメソッドの実装が上書きされないように、既存のMBean実装ファイルを一時ディレクトリにコピーします。
-
新しいDOSシェルを作成します。
-
次のコマンドを入力します。
java -DMDF=xmlfile -Dfiles=filesdir -DcreateStubs=true weblogic.management.commo.WebLogicMBeanMaker
前のコマンドで、
-
-DMDF
フラグは、WebLogic MBeanMakerがMDFをコードに変換する必要があることを示します。 -
xmlFileはXML MBean記述ファイル(MDF)を表します。
-
filesdirは、WebLogic MBeanMakerがMBeanタイプの中間ファイルを配置する場所を表します。
xmlfileが入力されるたびに、新しい出力ファイル群が生成されます。
-DcreateStubs=true
フラグを使用するたびに、既存のMBean実装ファイルがすべて上書きされます。ノート:
バージョン9.0以降のWebLogic Serverでは、
-DMDFDIR
<MDF directory name>
オプションを使用して、複数のMDFを格納するディレクトリを指定することもできます。旧バージョンのWebLogic Serverでは、WebLogic MBeanMakerで一度に処理されるMDFは1つだけです。そのため、特定のセキュリティ・プロバイダ・タイプのMDFが複数ある(たとえば認証プロバイダが複数ある)場合には、このプロセスを繰り返す必要がありました。 -
-
オプショナルSSPI MBeanをMDFに実装した場合は、次のステップに従います。
-
MBean実装ファイルを見つけて開きます。
WebLogic MBeanMakerによって生成されるMBean実装ファイルには、
<MBeanName>Impl.java
という名前が付けられます。たとえば、SampleAuthenticator
という名前のMDFの場合、編集されるMBean実装ファイルはSampleAuthenticatorImpl.java
という名前になります。 -
ステップ1で一時ディレクトリに保存した既存のMBean実装ファイルを開きます。
-
既存のMBean実装ファイルを、WebLogic MBeanMakerによって生成されたMBean実装ファイルと同期させます。
これには、メソッドの実装を既存のMBean実装ファイルから新しく生成されたMBean実装ファイルにコピー(または、新しく生成されたMBean実装ファイルから既存のMBean実装ファイルに新しいメソッドを追加)し、いずれのMBean実装ファイルにも入っているメソッドのメソッド・シグネチャへの変更が、使用するMBean実装ファイルのバージョンに反映されていることを確認するといった作業が必要です。
-
MDFを修正して元のMDFにはないオプショナルSSPI MBeanを実装した場合は、各メソッドを実装します。オプショナルSSPI MBeanが継承するメソッドもすべて実装してください。
-
-
MDFを変更して元のMDFにはないカスタム操作を含めた場合、メソッド・スタブを使用してメソッドを実装します。
-
完成した、つまりすべてのメソッドを実装したMBean実装ファイルを保存します。
-
このMBean実装ファイルを、WebLogic MBeanMakerがMBeanタイプの実装ファイルを配置したディレクトリにコピーします。このディレクトリは、ステップ3でfilesdirとして指定します。(ステップ3の結果としてWebLogic MBeanMakerで生成されたMBean実装ファイルをオーバーライドします。)
生成されるMBeanインタフェース・ファイルについて
MBeanインタフェース・ファイルは、ランタイム・クラスまたはMBean実装が構成データを取得するために使用するMBeanとのクライアント側APIです。Provider SSPIの目的についてで説明されているように、これはinitializeメソッドで使用するのが一般的です。
WebLogic MBeanMakerでは、作成済のMDFからMBeanタイプを生成するので、生成されるMBeanインタフェース・ファイルの名前は、そのMDF名の後にMBean
というテキストが付いたものになります。たとえば、WebLogic MBeanMakerを使用してSimpleSampleAuthenticator
MDFを実行すると、MBeanインタフェース・ファイルSimpleSampleAuthenticatorMBean.java
が生成されます。
WebLogic MBeanMakerによるMBean JARファイル(MJF)の作成
WebLogic MBeanMakerでMDFを実行して中間ファイルを作成し、MBean実装ファイルを編集して適切なメソッドの実装を提供したら、カスタム・セキュリティ・プロバイダのMBeanファイルとランタイム・クラスをMBean JARファイル(MJF)にパッケージ化する必要があります。このプロセスも、WebLogic MBeanMakerによって自動化されます。
カスタム・セキュリティ・プロバイダのMJFを作成するには、次のステップを実行します。
-
新しいDOSシェルを作成します。
-
次のコマンドを入力します。
java -DMJF=jarfile -Dfiles=filesdir weblogic.management.commo.WebLogicMBeanMaker
前のコマンドで、
-
-DMJF
フラグは、WebLogic MBeanMakerが新しいMBeanタイプを含むJARファイルを作成する必要があることを示します。 -
jarfileはMJFの名前を表します。
-
filesdirは、WebLogic MBeanMakerがMJFへのJARのファイルを検索する場所を表します。
この時点でコンパイルが行われるので、エラーが発生するおそれがあります。jarfileが指定されていて、エラーが発生しなかった場合には、指定された名前のMJFが作成されます。
ノート:
カスタム・セキュリティ・プロバイダのJARファイルを作成する際には、一連のXMLバインディング・クラスと1つのスキーマも生成されます。そのスキーマに関連付けるネームスペースを選択できます。それにより、使用しているカスタム・クラスとOracleのカスタム・クラスとの競合を防ぐことができます。ネームスペースのデフォルトは
vendor
です。-targetNameSpace
引数をWebLogicMBeanMakerまたは関連するWLMBeanMaker antタスクに渡すと、このデフォルトを変更できます。既存のMJFを更新する場合は、MJFを削除して再生成する必要があります。MJFの名前は変更しないでください。WebLogic MBeanMakerにも
-DIncludeSource
オプションがあり、それを指定すると、生成されるMJFにソース・ファイルを含めるかどうかを制御できます。ソース・ファイルには、生成されたソースとMDFそのものがあります。デフォルトはfalseです。このオプションは、-DMJF
を使用しない場合には無視されます。 -
生成されたMJFは、自らのWebLogic Server環境にインストールすることも、顧客に配布してそれぞれのWebLogic Server環境にインストールしてもらうこともできます。
WebLogic Server環境にMBeanタイプをインストールする
MBeanタイプをWebLogic Server環境にインストールするには、MJFをWL_HOME\server\lib\mbeantypes
ディレクトリにコピーします。ここで、WL_HOMEは最上位のWebLogic Serverインストール・ディレクトリです。これにより、カスタム・セキュリティ・プロバイダがデプロイされます。つまり、カスタム・セキュリティ・プロバイダがWebLogic Server管理コンソールから管理可能になります。
ノート:
MBeanタイプをインストールするデフォルトのディレクトリは、WL_HOME\server\lib\mbeantypes
です。(初めて使用するバージョンがWebLogic Server 9.0の場合、セキュリティ・プロバイダは...\domaindir\lib\mbeantypes
からもロードできます。)ただし、サーバーを起動するときに-Dweblogic.alternateTypesDirectory=
dir
コマンドライン・フラグを使用すれば、WebLogic Serverが追加ディレクトリでMBeanタイプを検索します。dir
は、ディレクトリ名のカンマ区切りのリストです。このフラグを使用する場合、WebLogic Serverは常に最初にWL_HOME\server\lib\mbeantypes
からMBeanタイプをロードします。その後で、追加ディレクトリにあるすべての有効なアーカイブを検索して、ロードします。このとき拡張子は考慮されません。
たとえば、-Dweblogic.alternateTypesDirectory = dirX,dirY,
の場合、WebLogic Serverは最初にWL_HOME\server\lib\mbeantypes
からMBeanタイプをロードしてから、dirX
およびdirY
にある有効なアーカイブをロードします。WebLogic Serverに追加ディレクトリでMBeanタイプを検索するように指示する際にJavaセキュリティ・マネージャを使用している場合は、weblogic.policy
ファイルを更新して、MBeanタイプ(その結果としてカスタム・セキュリティ・プロバイダ)に対する適切なパーミッションを付与することも必要になります。『WebLogicセキュリティ・サービスによるアプリケーションの開発』のJavaセキュリティ・マネージャを使用してWebLogicリソースを保護する方法に関する項を参照してください。
WebLogic Server管理コンソールを使用してカスタム・セキュリティ・プロバイダを構成することによって、MBeanタイプのインスタンスを作成して、GUI、他のJavaコード、またはAPIからそれらのMBeanインスタンスを使用することができます。たとえば、WebLogic Server管理コンソールを使用して、属性を取得/設定したり操作を呼び出したりすることもできますし、他のJavaオブジェクトを開発して、そのオブジェクトでMBeanをインスタンス化し、それらのMBeanから提供される情報に自動的に応答させることもできます。なお、これらのMBeanインスタンスをバックアップしておくことをお薦めします。