374.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 署名" を参照してください。