2.3.6 デバッグダンプ機能
意図した対象を正しく署名/署名検証もしくは暗号/復号しているかを確認するために署名/署名検証および暗号/復号処理時に使用される中間データを出力することができます。ここでは,デバッグダンプ機能について説明します。
- 注意事項
-
本機能を使用すると,サイズの大きなファイル もしくは,多量のファイルを出力する可能性があります。本機能をデバッグ目的以外に使用しないでください。運用時に中間データを取得したい場合については,APIリファレンスのXMLSecurityContextクラス,SignedInfoインタフェース,およびReferenceインタフェースを参照してください。
- APIリファレンスの格納場所(Windowsの場合だけ)
-
Application Serverのインストール先ディレクトリ/XMLSEC/docs/xsecapi
- 〈この項の構成〉
(1) 出力内容
- ヘッダ情報
-
ダンプされるデータには,中間データに関する情報を含むヘッダが付加されて出力されます。ヘッダ情報には,ダンプ対象を表す文字列,時刻,およびスレッドIDを含みます。ヘッダDecriptionに出力される内容の詳細については表2-4を参照してください。
表2‒3 ヘッダの種類 #
ヘッダ名
出力内容
備考
1
Description
ダンプ対象を表す文字列
中間データによって出力される内容が異なる。
2
Timestamp
処理時刻
yyyy/mm/dd hh:mm:ss.sss形式
3
Thread-Id
スレッドID
−
- ヘッダの出力例(Transformへの出力情報時)
------------------------------------------------ Description: dereferenced data: URI=”” Timestamp: 2004/08/31 12:04:06.255 Thread-Id: 000c62c8
- 中間データの情報
-
出力される中間データで得られる情報について次の表に示します。
表2‒4 出力される中間データの情報 #
出力される情報の種類
出力される処理
ヘッダDescripitionの出力内容
出力される中間データ
1
Transformへの入力情報
署名,署名検証,復号※
dereferenced data: URI=<URI>
変換処理対象のデータ
2
Digestへの入力情報
署名,署名検証
digest input: URI=<URI>
ダイジェスト値計算対象のデータ
3
署名/検証計算への入力情報
署名,署名検証
canonicalized SignedInfo
署名/検証計算対象データ
4
暗号化処理への入力情報
暗号
encrypt input
暗号化処理対象データ
5
復号化処理への入力情報
復号
decrypt input
復号化処理対象データ
- 注意事項
-
デバッグダンプ機能によって出力される中間データは,すべてバイナリデータです。中間データに漢字コードや改行コードなどが含まれる場合,テキストエディタでは正しく表示されない場合があります。ダンプされるデータがノードセットである場合,Inclusive XML Canonicalization処理された結果が出力されます。ただし,コメントは含まれません。ノードセットおよびInclusive XML Canonicalization処理の詳細については,W3Cのホームページを参照してください。
(2) 出力単位
- デバックダンプ出力の単位は,一処理につき一出力とします。
-
例1:一つのXML文章に一つのXML署名を行う場合→ダンプ出力は1回。
例2:一つのXML文章に二つのXML署名を行う場合→ダンプ出力は2回。
(3) デバックダンプ出力設定方法と出力先
システムプロパティの設定内容
-
デバックダンプ出力設定
デバッグダンプ出力を行うかどうかの設定を行います。trueに設定された場合,デバッグダンプ出力を行います。
-
出力先フォルダ
デバッグダンプで出力されるファイルの出力先を設定します。出力先が設定されていない場合,および設定された出力先が存在しなかった場合は標準出力にダンプ出力されます。出力先フォルダが設定されていても,デバッグダンプ出力設定がされていない場合にはダンプ出力は行われません。
- 推奨するデバッグダンプの出力先(Windowsの場合)
-
Application Serverのインストール先ディレクトリ/XMLSEC/logs
- 推奨するデバッグダンプの出力先(UNIXの場合)
-
/opt/Cosminexus/XMLSEC/logs
- 設定値
-
デバックダンプ機能の設定項目とデフォルト値を次の表に示します。
表2‒5 デバックダンプの設定項目に設定する値 設定項目
プロパティ名
デフォルト値
デバックダンプ出力設定
com.cosminexus.xml.security.debug.dump
設定なし
出力先フォルダ
com.cosminexus.xml.security.debug.dumpdir
設定なし
- システムプロパティの設定方法
-
システムプロパティの設定は,javaコマンドの-Dオプションを利用します。次にC:\Program Files\HITACHI\Cosminexus\XMLSEC\logsにダンプ出力を行う例を以下に示します。
- システムプロパティの設定例(-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コンテナサーバのComponent ContainerでXML Security - Coreを使用する場合は,Component Containerのユーザー定義ファイル(usrconf.properties)にシステムプロパティを記述します。ユーザー定義ファイルはjava.util.Properties形式で記述する必要があります。そのため,パスに「\」記号や空白文字が含まれる場合は,「\\」としたり,空白の前に「\」記号を追加したりして,エスケープする必要があります。また,java.util.Properties形式の場合は日本語を直接指定できないので,ディレクトリ名などで日本語を使用している場合は,注意してください。ユーザー定義ファイルにシステムプロパティを記述する場合の例を次に示します。
- システムプロパティの設定例(ユーザー定義ファイルに記述する場合)
com.cosminexus.xml.security.debug.dump=true com.cosminexus.xml.security.debug.dumpdir=C:\\Program\ Files\\Hitachi\\Cosminexus\\XMLSEC\\logs
Component Containerのユーザー定義ファイルの設定方法については,マニュアル「アプリケーションサーバ リファレンス 定義編(サーバ定義)」を参照してください。
(4) ファイル名
ダンプ出力時にディレクトリを指定された際に出力されるファイルの名前は,プレフィックスcsmxsecに実行された処理,スレッドID,および時刻を合わせたものになります。
csmxsec_{処理名}_スレッドID_yyyymmddhhmmsssss.dmp
# |
処理 |
処理名 |
---|---|---|
1 |
署名 |
sig |
2 |
署名検証 |
ver |
3 |
暗号 |
enc |
4 |
復号 |
dec |
例:実行された処理が署名,スレッドIDが01b3f8f6,および実行された時間が2004年10月1日12:00:12345の場合のファイル名。
csmxsec_sig_01b3f8f6_20041001120012345.dmp