3.3.6 デバッグダンプ機能

意図した対象を正しく署名/署名検証もしくは暗号/復号しているかを確認するために署名/署名検証および暗号/復号処理時に使用される中間データを出力することができます。ここでは,デバッグダンプ機能について説明します。

注意
本機能を使用すると,サイズの大きなファイル もしくは,多量のファイルを出力する可能性があります。本機能をデバッグ目的以外に使用しないでください。運用時に中間データを取得したい場合については,APIリファレンスXMLSecurityContextクラスSignedInfoインタフェース,およびReferenceインタフェースを参照してください。
APIリファレンスの格納場所(Windowsの場合だけ)
Cosminexusのインストール先ディレクトリ/XMLSEC/docs/xsecapi
<この項の構成>
(1) 出力内容
(2) 出力単位
(3) デバックダンプ出力設定方法と出力先
(4) ファイル名

(1) 出力内容

ヘッダ情報
ダンプされるデータには,中間データに関する情報を含むヘッダが付加されて出力されます。ヘッダ情報には,ダンプ対象を表す文字列,時刻,およびスレッドIDを含みます。ヘッダDecriptionに出力される内容の詳細については表3-4を参照してください。

表3-3 ヘッダの種類

ヘッダ名出力内容備考
1Descriptionダンプ対象を表す文字列中間データによって出力される内容が異なる。
2Timestamp処理時刻yyyy/mm/dd hh:mm:ss.sss形式
3Thread-IdスレッドID 

図3-6 ヘッダの出力例(Transformへの出力情報時)

 

------------------------------------------------
Description: dereferenced data: URI=””
Timestamp: 2004/08/31 12:04:06.255
Thread-Id: 000c62c8

中間データの情報
出力される中間データで得られる情報について次の表に示します。

表3-4 出力される中間データの情報

出力される情報の種類出力される処理ヘッダDescripitionの出力内容出力される中間データ
1Transformへの入力情報署名,署名検証,復号dereferenced data: URI=<URI>変換処理対象のデータ
2Digestへの入力情報署名,署名検証digest input: URI=<URI>ダイジェスト値計算対象のデータ
3署名/検証計算への入力情報署名,署名検証canonicalized SignedInfo署名/検証計算対象データ
4暗号化処理への入力情報暗号encrypt input暗号化処理対象データ
5復号化処理への入力情報復号decrypt input復号化処理対象データ
注※
暗号データがCipherReferenceに指定されている場合だけ

注意
デバッグダンプ機能によって出力される中間データは,すべてバイナリデータです。中間データに漢字コードや改行コードなどが含まれる場合,テキストエディタでは正しく表示されない場合があります。ダンプされるデータがノードセットである場合,Inclusive XML Canonicalization処理された結果が出力されます。ただし,コメントは含まれません。ノードセットおよびInclusive XML Canonicalization処理の詳細については,W3Cのホームページを参照してください。

(2) 出力単位

デバックダンプ出力の単位は,一処理につき一出力とします。
例1:一つのXML文章に一つのXML署名を行う場合→ダンプ出力は1回。
例2:一つのXML文章に二つのXML署名を行う場合→ダンプ出力は2回。

(3) デバックダンプ出力設定方法と出力先

システムプロパティの設定内容
設定値
デバックダンプ機能の設定項目とデフォルト値を次の表に示します。

表3-5 デバックダンプの設定項目に設定する値

設定項目プロパティ名デフォルト値
デバックダンプ出力設定com.cosminexus.xml.security.debug.dump設定なし
出力先フォルダcom.cosminexus.xml.security.debug.dumpdir設定なし
システムプロパティの設定方法
システムプロパティの設定は,javaコマンドの-Dオプションを利用します。次にC:¥Program Files¥HITACHI¥Cosminexus¥XMLSEC¥logsにダンプ出力を行う例を以下に示します。

図3-7 システムプロパティの設定例(-Dオプションを利用する場合)

 

java -Dcom.cosminexus.xml.security.debug.dump=true -Dcom.cosminexus.xml.security.debug.dumpdir=C:¥Program Files¥HITACHI¥Cosminexus¥XMLSEC¥logs YourApplicationClass

J2EEサーバまたはWebコンテナサーバのCosminexus Component ContainerでCosminexus XML Security - Coreを使用する場合は,Cosminexus Component Containerのユーザー定義ファイル(usrconf.properties)にシステムプロパティを記述します。ユーザー定義ファイルはjava.util.Properties形式で記述する必要があります。そのため,パスに「¥」記号や空白文字が含まれる場合は,「¥¥」としたり,空白の前に「¥」記号を追加したりして,エスケープする必要があります。また,java.util.Properties形式の場合は日本語を直接指定できないので,ディレクトリ名などで日本語を使用している場合は,注意してください。ユーザー定義ファイルにシステムプロパティを記述する場合の例を次に示します。

図3-8 システムプロパティの設定例(ユーザー定義ファイルに記述する場合)

 

com.cosminexus.xml.security.debug.dump=true
com.cosminexus.xml.security.debug.dumpdir=C:¥¥Program¥ Files¥¥Hitachi¥¥Cosminexus¥¥XMLSEC¥¥logs

Cosminexus Component Containerのユーザー定義ファイルの設定方法については,マニュアル「Cosminexus アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。

(4) ファイル名

ダンプ出力時にディレクトリを指定された際に出力されるファイルの名前は,プレフィックスcsmxsecに実行された処理,スレッドID,および時刻を合わせたものになります。

csmxsec_{処理名}_スレッドID_yyyymmddhhmmsssss.dmp

表3-6 ファイル名に付加される処理名

#処理処理名
1署名sig
2署名検証ver
3暗号enc
4復号dec

例:実行された処理が署名,スレッドIDが01b3f8f6,および実行された時間が2004年10月1日12:00:12345の場合のファイル名。

csmxsec_sig_01b3f8f6_20041001120012345.dmp