最近、私たちは製品の XML 通信仕様を策定する任務を負っています。私の同僚の何人かは、XML ドキュメントのマーシャリングとアンマーシャリングに関して JAXB に高い意見を持っています。私はそれをいじってしばらく過ごしましたが、それらがどこから来ているのか理解しています。これにより、単純な XML ドキュメントの作業が簡単になります。
今それをノッチを取る。私たちの通信モデルに「ビルトイン」署名検証を使用する人のために、私が見たいと思っていることの 1 つです。私が直面している問題の 1 つは、署名を検証するために、対応する XML をバイトとして扱う必要があることです。それでは、この例を見てみましょう...
<topLevel>
<sensitiveData encoding="UTF8">
<creditCard>
<number>1234-1234-1234-1234</number>
<expDate>Oct 2020</expDate>
</creditCard>
</sensitiveData>
<signatureOfSensitiveData algorithm="SHA1WithRSA">VGhpc0lzQVNpZ25hdHVyZQ==</signatureOfSensitiveData>
</topLevel>
編集: 実際にはクレジット カード データを渡しているわけではありません。ほんの一例です。
byte[]
「sensitiveData」タグ内のすべての (エンコーディングによって決定される) 表現を取得できれば、すばらしいことです。その上で「アンマーシャル」を再度呼び出す必要さえありませんbyte[]
。
これはまた、私たちに別の扉を開きます。実際に、「圧縮」属性と「暗号化」属性を要素に導入できます。それらを として扱うことができれば、それらをbyte[]
膨らませて解読し、それらを再び非整列化するために渡すことができます。
補足: XML を base64 でエンコードして要素に含めると、これが機能すると思います。しかし、その場合、単純なドキュメントであっても base64 を使用せざるを得なくなり、メッセージに不必要な肥大化が生じます。
これに対する解決策のアイデアはありますか? 私の希望は、JAXB の基本的な何かが欠けているだけで、それを取得した後は簡単になることです。
ありがとう!