この節では、新しいカスタム監査パブリッシャーを Java で作成する方法を説明します。
Identity Manager が提供するコンソール、ファイル、および JDBC のカスタムパブリッシャーは、AuditLogPublisher インタフェースを実装します。これらのパブリッシャーのソースコードは REF キットにあります。REF キットでは、Javadoc 形式で記されたインタフェースのマニュアルも用意されています。(インタフェースの詳細については、Javadoc を参照してください。
REF (Resource Extension Facility) キットは、製品 CD の /REF ディレクトリまたはインストールイメージにあります。
開発者には、AbstractAuditLogPublisher クラスを拡張するようにお勧めします。このクラスは設定を解析し、すべての必要なオプションがパブリッシャーに用意されていることを確認します。(REF キットのパブリッシャーの例を参照してください。
パブリッシャーには no-arg コンストラクタが必要になります。
パブリッシャーのライフサイクルを、次の手順で説明します。
オブジェクトがインスタンス化されます。
setFormatter() メソッドを使用して、フォーマッタ (存在する場合) が設定されます。
オプションは、configure( Map) メソッドを使用して指定します。
イベントは、publish( Map, LoggingErrorHandler) メソッドを使用してパブリッシュされます。
shutdown() メソッドを使用して、パブリッシャーが終了します。
手順 1 ~ 3 は、Identity Manager の起動時と監査設定の更新ごとに実行されます。シャットダウンが呼び出される前に監査イベントが生成されていない場合には、手順 4 は行われません。
configure(Map) は、同じパブリッシャーオブジェクトに対して一度だけ呼び出されます。パブリッシャーは、実行時の設定変更に備える必要はありません。監査設定が更新されると、まず現在のパブリッシャーが停止され、新しいパブリッシャーが作成されます。
手順 3 の configure() メソッドは、WavesetException をスローする場合があります。この場合、パブリッシャーは無視され、パブリッシャーに対してほかの呼び出しは行われません。
パブリッシャーにはオプションを付けないことも、1 つ以上のオプションを付けることもできます。getConfigurationOptions() メソッドは、パブリッシャーがサポートするオプションのリストを返します。オプションは、PublisherOption クラス (クラスの詳細については Javadoc を参照) を使用してカプセル化されます。監査設定ビューアは、パブリッシャー用の設定インタフェースを構築するときに、このメソッドを呼び出します。
Identity Manager は、サーバーの起動時と監査設定の変更後に、configure( Map) メソッドを使用してパブリッシャーを設定します。
REF キットには、次のフォーマッタのソースコードが収められています。
XmlFormatter。監査イベントを XML 文字列としてフォーマットします。
UlfFormatter。汎用ログ形式 (ULF) に従って、監査イベントをフォーマットします。Sun Application Server はこの形式を使用します。
フォーマッタは、AuditRecordFormatter インタフェースを実装する必要があります。さらに、フォーマッタには no-arg コンストラクタが必要になります。詳細については、REF キットに収録された Javadoc を参照してください。
#ID#Configuration:SystemConfiguration オブジェクトの監査属性は、登録済みのパブリッシャーとフォーマッタをすべて一覧表示します。これらのパブリッシャーとフォーマッタだけが、監査設定ユーザーインタフェースで使用できます。