370.3. 基本例

次の例は、コンポーネントの基本的な使用法を示しています。

from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor",
                             "xmlsecurity:verify://enveloping?keySelector=#selector",
                             "mock:result")

Spring XML の場合:

<from uri="direct:enveloping" />
    <to uri="xmlsecurity:sign://enveloping?keyAccessor=#accessor" />
    <to uri="xmlsecurity:verify://enveloping?keySelector=#selector" />
<to uri="mock:result" />

署名プロセスには、秘密鍵が必要です。この秘密鍵を提供するキーアクセサー Bean を指定します。検証には、対応する公開鍵が必要です。この公開鍵を提供するキーセレクター Bean を指定します。

キーアクセサー Bean は KeyAccessor インターフェイスを実装する必要があります。パッケージ org.apache.camel.component.xmlsecurity.api には、Java キーストアから秘密鍵を読み取るデフォルトの実装クラス DefaultKeyAccessor が含まれています。

キーセレクター Bean は、javax.xml.crypto.KeySelector インターフェイスを実装する必要があります。パッケージ org.apache.camel.component.xmlsecurity.api には、キーストアから公開鍵を読み取るデフォルトの実装クラス DefaultKeySelector が含まれています。

この例では、デフォルトの署名アルゴリズム http://www.w3.org/2000/09/xmldsig#rsa-sha1 が使用されています。オプション signatureAlgorithm (以下を参照) によって、選択した署名アルゴリズムを設定できます。署名者エンドポイントは、enveloping XML 署名を作成します。enveloped XML 署名を作成する場合は、Signature 要素の親要素を指定する必要があります。詳細については、parentLocalName オプションを参照してください。

detached XML 署名の作成については、サブチャプター署名済み要素のシブリングとしての Detached XML 署名を参照してください。