373.6. Spring Boot Auto-Configuration
コンポーネントは、以下に記載される 63 個のオプションをサポートします。
名前 | 説明 | デフォルト | タイプ |
---|---|---|---|
camel.component.xmlsecurity.enabled | xmlsecurity コンポーネントを有効にする | true | Boolean |
camel.component.xmlsecurity.resolve-property-placeholders | 起動時にコンポーネントがプロパティープレースホルダーを解決するかどうか。String タイプのプロパティーのみがプロパティープレースホルダーを使用できます。 | true | Boolean |
camel.component.xmlsecurity.signer-configuration.add-key-info-reference | KeyInfo 要素を改ざんから保護するために、署名された情報要素への参照を追加して、署名値によって保護されるようにすることができます。デフォルト値は true です。KeyAccessor によって KeyInfo が返される場合にのみ関連します。KeyInfo#getId() は null ではありません。 | true | Boolean |
camel.component.xmlsecurity.signer-configuration.base-uri | URI デリファレンスで使用するベース URI を設定できます。次に、相対 URI がベース URI と連結されます。 | String | |
camel.component.xmlsecurity.signer-configuration.canonicalization-method | ダイジェストが計算される前に SignedInfo 要素を正規化するために使用される正規化メソッド。ヘルパーメソッド XmlSignatureHelper.getCanonicalizationMethod(String algorithm) または getCanonicalizationMethod(String algorithm, List inclusiveNamespacePrefixes) を使用して、正規化メソッドを作成できます。 | AlgorithmMethod | |
camel.component.xmlsecurity.signer-configuration.canonicalization-method-name | String | ||
camel.component.xmlsecurity.signer-configuration.clear-headers | 署名と検証後に XML 署名固有のヘッダーをクリアするかどうかを決定します。デフォルトは true です。 | true | Boolean |
camel.component.xmlsecurity.signer-configuration.content-object-id | コンテンツオブジェクト Id 属性値を設定します。デフォルトでは、UUID が生成されます。null 値を設定すると、新しい UUID が生成されます。enveloping ケースのみ使用。 | String | |
camel.component.xmlsecurity.signer-configuration.content-reference-type | コンテンツ参照のタイプ。デフォルト値は null です。この値は、ヘッダー XmlSignatureConstants#HEADER_CONTENT_REFERENCE_TYPE で上書きできます。 | String | |
camel.component.xmlsecurity.signer-configuration.content-reference-uri | 署名するコンテンツの参照 URI。enveloped ケースのみの使用です。参照 URI に ID 属性値が含まれている場合、リソーススキーマ URI (setSchemaResourceUri (String)) も設定する必要があります。これは、スキーマバリデーターが ID 属性である属性を検出するためです。enveloping ケースや detached ケースは無視されます。 | String | |
camel.component.xmlsecurity.signer-configuration.crypto-context-properties | 暗号コンテキストプロパティーを設定します。リンク XMLCryptoContext#setProperty(String, Object) を参照してください。設定可能なプロパティーは、XMLSignContext および XMLValidateContext で定義されます (サポートされるプロパティーを参照)。次のプロパティーは、デフォルトで XML 検証用の値 Boolean#TRUE に設定されています。これらの機能をオフにする場合は、プロパティー値を Boolean#FALSE に設定する必要があります。org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference | Map | |
camel.component.xmlsecurity.signer-configuration.digest-algorithm | ダイジェストアルゴリズムの URI。オプションのパラメーター。このダイジェストアルゴリズムは、入力メッセージのダイジェストを計算するために使用されます。このダイジェストアルゴリズムが指定されていない場合、ダイジェストアルゴリズムは署名アルゴリズムから計算されます。例: http://www.w3.org/2001/04/xmlenc#sha256 | String | |
camel.component.xmlsecurity.signer-configuration.disallow-doctype-decl | 着信 XML ドキュメントに DTD DOCTYPE 宣言が含まれることを禁止します。デフォルト値はブール #TRUE です。 | true | Boolean |
camel.component.xmlsecurity.signer-configuration.key-accessor | 署名プロセスには、秘密鍵が必要です。この秘密鍵を提供するキーアクセサー Bean を指定します。キーアクセサー Bean は KeyAccessor インターフェイスを実装する必要があります。パッケージ org.apache.camel.component.xmlsecurity.api には、Java キーストアから秘密鍵を読み取るデフォルトの実装クラス DefaultKeyAccessor が含まれています。 | KeyAccessor | |
camel.component.xmlsecurity.signer-configuration.key-accessor-name | String | ||
camel.component.xmlsecurity.signer-configuration.omit-xml-declaration | 送信メッセージボディーの XML 宣言を省略するかどうかを示すインジケーター。デフォルト値は false です。ヘッダー XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION で上書きできます。 | false | Boolean |
camel.component.xmlsecurity.signer-configuration.output-xml-encoding | 結果の署名付き XML ドキュメントの文字エンコーディング。null の場合、元の XML ドキュメントのエンコーディングが使用されます。 | String | |
camel.component.xmlsecurity.signer-configuration.parent-local-name | XML 署名要素が追加される親要素のローカル名。enveloped XML 署名にのみ関連します。または、setParentXpath (XPathFilterParameterSpec) を使用することもできます。デフォルト値は null です。enveloping および detached された XML 署名の場合、値は null である必要があります。このパラメーターまたは enveloped 署名のパラメーター setParentXpath(XPathFilterParameterSpec) と detached 署名のパラメーター setXpathsToIdAttributes(List) を同じように設定することはできません。パラメーター parentXpath と parentLocalName が同じ設定で指定されている場合、例外が出力されます。 | String | |
camel.component.xmlsecurity.signer-configuration.parent-namespace | XML 署名要素が追加される親要素の名前空間。 | String | |
camel.component.xmlsecurity.signer-configuration.parent-xpath | エンベロープケースで親ノードを検索するように XPath を設定します。このメソッドを介して親ノードを指定するか、メソッド setParentLocalName(String) および setParentNamespace(String) を使用して親のローカル名と名前空間を指定します。デフォルト値は null です。enveloping および detached された XML 署名の場合、値は null である必要があります。パラメーター parentXpath と parentLocalName が同じ設定で指定されている場合、例外が出力されます。 | XPathFilterParameter Spec | |
camel.component.xmlsecurity.signer-configuration.plain-text | メッセージボディーにプレーンテキストが含まれているかどうかを示します。デフォルト値は false で、メッセージボディーに XML が含まれていることを示します。値は、ヘッダー XmlSignatureConstants#HEADER_MESSAGE_IS_PLAIN_TEXT で上書きできます。 | false | Boolean |
camel.component.xmlsecurity.signer-configuration.plain-text-encoding | プレーンテキストのエンコード。メッセージボディーがプレーンテキストの場合にのみ関連します (パラメーター plainText) を参照してください。デフォルト値は UTF-8 です。 | UTF-8 | String |
camel.component.xmlsecurity.signer-configuration.prefix-for-xml-signature-namespace | XML 署名名前空間 http://www.w3.org/2000/09/xmldsig# の名前空間接頭辞。デフォルト値は ds です。null または空の値が設定されている場合、XML 署名名前空間に接頭辞は使用されません。ベストプラクティスを参照してください http://www.w3.org/TR/xmldsig-bestpractices/#signing-xml-without-namespaces | ds | String |
camel.component.xmlsecurity.signer-configuration.properties | 追加のプロパティーを含む XML 署名に追加の参照とオブジェクトを追加するために、XmlSignatureProperties インターフェイスを実装する Bean を提供できます。 | XmlSignatureProperties | |
camel.component.xmlsecurity.signer-configuration.properties-name | String | ||
camel.component.xmlsecurity.signer-configuration.schema-resource-uri | XML スキーマへのクラスパス。ID 属性を決定するために detached XML 署名ケースで指定する必要があり、enveloped ケースおよび enveloping ケースで設定される場合があります。設定されている場合、XML ドキュメントは指定された XML スキーマで検証されます。スキーマリソース URI は、ヘッダー XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI で上書きできます。 | String | |
camel.component.xmlsecurity.signer-configuration.signature-algorithm | 署名アルゴリズム。デフォルト値は http://www.w3.org/2000/09/xmldsig#rsa-sha1 です。 | String | |
camel.component.xmlsecurity.signer-configuration.signature-id | 署名 ID を設定します。このパラメーターが設定されていない場合 (null 値)、署名 ID に対して一意の ID が生成されます (デフォルト)。このパラメーターが (空の文字列) に設定されている場合、署名要素に Id 属性は作成されません。 | String | |
camel.component.xmlsecurity.signer-configuration.transform-methods | ダイジェストが計算される前にメッセージボディーで実行される変換。デフォルトでは、C14n が追加され、enveloped 署名の場合 (parentLocalName オプションを参照)、http://www.w3.org/2000/09/xmldsig#enveloped-signature もリストの位置 0 に追加されます。XmlSignatureHelper のメソッドを使用して、変換メソッドを作成します。 | List | |
camel.component.xmlsecurity.signer-configuration.transform-methods-name | String | ||
camel.component.xmlsecurity.signer-configuration.uri-dereferencer | 参照 URI によるリモートアクセスを制限したい場合は、独自の dereferencer を設定できます。オプションのパラメーター。設定されていない場合、URI フラグメント、HTTP、ファイル、および XPpointer URI を解決できるプロバイダーのデフォルトの逆参照子が使用されます。注意: 実装はプロバイダーに依存します! | URIDereferencer | |
camel.component.xmlsecurity.signer-configuration.xpaths-to-id-attributes | XPATH 式を介して detached ケースで署名されている要素を ID 属性 (タイプ ID の属性) に定義します。XPATH 式を介して見つかった各要素に対して、detached 署名が作成されます。その参照 URI には、対応する属性値 (先頭に # が付きます) が含まれます。署名は、署名された要素の最後のシブリングになります。より深い階層レベルを持つ要素が最初に署名されます。ヘッダー XmlSignatureConstants#HEADER_XPATHS_TO_ID_ATTRIBUTES を使用して、XPATH リストを動的に設定することもできます。enveloped 署名のパラメーター setParentLocalName(String) または setParentXpath(XPathFilterParameterSpec) と、detached 署名のこのパラメーターを同じ設定で設定することはできません。 | List | |
camel.component.xmlsecurity.verifier-configuration.base-uri | URI デリファレンスで使用するベース URI を設定できます。次に、相対 URI がベース URI と連結されます。 | String | |
camel.component.xmlsecurity.verifier-configuration.clear-headers | 署名と検証後に XML 署名固有のヘッダーをクリアするかどうかを決定します。デフォルトは true です。 | true | Boolean |
camel.component.xmlsecurity.verifier-configuration.crypto-context-properties | 暗号コンテキストプロパティーを設定します。リンク XMLCryptoContext#setProperty(String, Object) を参照してください。設定可能なプロパティーは、XMLSignContext および XMLValidateContext で定義されます (サポートされるプロパティーを参照)。次のプロパティーは、デフォルトで XML 検証用の値 Boolean#TRUE に設定されています。これらの機能をオフにする場合は、プロパティー値を Boolean#FALSE に設定する必要があります。org.jcp.xml.dsig.validateManifests javax.xml.crypto.dsig.cacheReference | Map | |
camel.component.xmlsecurity.verifier-configuration.disallow-doctype-decl | 着信 XML ドキュメントに DTD DOCTYPE 宣言が含まれることを禁止します。デフォルト値はブール #TRUE です。 | true | Boolean |
camel.component.xmlsecurity.verifier-configuration.key-selector | XML 署名を検証するためのキーを提供します。 | KeySelector | |
camel.component.xmlsecurity.verifier-configuration.omit-xml-declaration | 送信メッセージボディーの XML 宣言を省略するかどうかを示すインジケーター。デフォルト値は false です。ヘッダー XmlSignatureConstants#HEADER_OMIT_XML_DECLARATION で上書きできます。 | false | Boolean |
camel.component.xmlsecurity.verifier-configuration.output-node-search | 出力メッセージ本文に設定する XML 署名ドキュメントからノードを決定するための出力ノード検索値を設定します。値のクラスは、出力ノード検索のタイプによって異なります。出力ノード検索は XmlSignature2Message に転送されます。 | Object | |
camel.component.xmlsecurity.verifier-configuration.output-node-search-type | 出力メッセージ bodyF にシリアル化される出力ノードを決定するための検索タイプを決定します。setOutputNodeSearch(Object) を参照してください。サポートされている既定の検索の種類は、DefaultXmlSignature2Message にあります。 | デフォルト | String |
camel.component.xmlsecurity.verifier-configuration.output-xml-encoding | 結果の署名付き XML ドキュメントの文字エンコーディング。null の場合、元の XML ドキュメントのエンコーディングが使用されます。 | String | |
camel.component.xmlsecurity.verifier-configuration.remove-signature-elements | 出力メッセージに設定されたドキュメントから XML 署名要素 (ローカル名 Signature および 名前空間 http://www.w3.org/2000/09/xmldsig# を持つ要素) を削除するかどうかを示します。通常、これは XML 署名が enveloped の場合にのみ必要です。デフォルト値はブール #FALSE です。このパラメーターは XmlSignature2Message に転送されます。出力ノード検索のタイプが DefaultXmlSignature2Message#OUTPUT_NODE_SEARCH_TYPE_DEFAULT.F の場合、このインジケーターは効果がありません。 | false | Boolean |
camel.component.xmlsecurity.verifier-configuration.schema-resource-uri | XML スキーマへのクラスパス。ID 属性を決定するために detached XML 署名ケースで指定する必要があり、enveloped ケースおよび enveloping ケースで設定される場合があります。設定されている場合、XML ドキュメントは指定された XML スキーマで検証されます。スキーマリソース URI は、ヘッダー XmlSignatureConstants#HEADER_SCHEMA_RESOURCE_URI で上書きできます。 | String | |
camel.component.xmlsecurity.verifier-configuration.secure-validation | 安全な検証を有効にします。true の場合、安全な検証が有効になります。 | true | Boolean |
camel.component.xmlsecurity.verifier-configuration.uri-dereferencer | 参照 URI によるリモートアクセスを制限したい場合は、独自の dereferencer を設定できます。オプションのパラメーター。設定されていない場合、URI フラグメント、HTTP、ファイル、および XPpointer URI を解決できるプロバイダーのデフォルトの逆参照子が使用されます。注意: 実装はプロバイダーに依存します! | URIDereferencer | |
camel.component.xmlsecurity.verifier-configuration.validation-failed-handler | さまざまな検証失敗の状況を処理します。デフォルトの実装は、さまざまな状況に対して特定の例外を出力します (すべての例外はパッケージ名 org.apache.camel.component.xmlsecurity.api を持ち、XmlSignatureInvalidException のサブクラスです。署名値の検証に失敗すると、XmlSignatureInvalidValueException が出力されます。参照の検証に失敗すると、XmlSignatureInvalidContentHashException が出力されます。詳細については、JavaDoc を参照してください。 | ValidationFailedHandler | |
camel.component.xmlsecurity.verifier-configuration.validation-failed-handler-name | @param validationFailedHandlerName へのハンドラーの名前 | String | |
camel.component.xmlsecurity.verifier-configuration.xml-signature-checker | このインターフェイスを使用すると、検証を実行する前に、アプリケーションで XML 署名を確認できます。この手順は http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signed で推奨されています | XmlSignatureChecker | |
camel.component.xmlsecurity.verifier-configuration.xml-signature2-message | 検証後に XML 署名を出力メッセージにマップする Bean。このマッピングを行う方法は、オプション outputNodeSearchType、outputNodeSearch、および removeSignatureElements によって設定できます。デフォルトの実装では、3 つの出力ノード検索タイプ Default、ElementName、および XPath に関連する 3 つの可能性が提供されます。デフォルトの実装では、ノードが決定され、それがシリアライズされて出力メッセージのボディーに設定されます。 検索タイプが ElementName の場合、出力ノード (この場合は要素でなければなりません) は、検索値で定義されたローカル名と名前空間によって決定されます (オプション outputNodeSearch 参照)。検索タイプが XPath の場合、出力ノードは検索値で指定された XPath によって決定されます (この場合、出力ノードのタイプは Element、TextNode、または Document になります)。出力ノード検索タイプがデフォルトの場合、以下のルールが適用されます: enveloped XML 署名の場合 (URI=と変換 http://www.w3.org/2000/09/xmldsig#enveloped-signature を持つ参照があります)、署名要素を持たない入力 XML 文書が出力メッセージボディーに設定されます。非 enveloped XML 署名の場合、メッセージボディーは参照されたオブジェクトから決定されます。これについては、Enveloping XML 署名ケースでの出力ノードの決定の章で詳しく説明されています。 | XmlSignature2Message | |
camel.dataformat.securexml.add-key-value-for-encrypted-key | セッション鍵の暗号化に使用される公開鍵を EncryptedKey 構造体の KeyValue として追加するかどうか。 | true | Boolean |
camel.dataformat.securexml.content-type-header | データフォーマットがデータ形式を実行できる場合は、データフォーマットの型で Content-Type ヘッダーを設定するかどうか。たとえば、XML にマーシャリングするデータ形式の場合は application/xml、JSON にマーシャリングするデータ形式の場合は JSon です。 | false | Boolean |
camel.dataformat.securexml.digest-algorithm | RSA OAEP アルゴリズムで使用するダイジェストアルゴリズム。XMLCipher.SHA1 XMLCipher.SHA256 XMLCipher.SHA512 デフォルト値は XMLCipher.SHA1 です。 | SHA1 | String |
camel.dataformat.securexml.enabled | securexml データ形式を有効にする | true | Boolean |
camel.dataformat.securexml.key-cipher-algorithm | 非対称キーの暗号化/復号化に使用される暗号アルゴリズム。選択できるのは以下の通りです: XMLCipher.RSA_v1dot5 XMLCipher.RSA_OAEP XMLCipher.RSA_OAEP_11 デフォルト値は XMLCipher.RSA_OAEP です。 | RSA_OAEP | String |
camel.dataformat.securexml.key-or-trust-store-parameters-id | 送信者の trustStore または受信者の keyStore を表す KeyStore インスタンスを作成およびロードするための設定オプションに使用される、レジストリーで検索する KeyStore インスタンスを参照します。 | String | |
camel.dataformat.securexml.key-password | KeyStore から秘密鍵を取得するために使用されるパスワード。この鍵は、非対称復号化に使用されます。 | String | |
camel.dataformat.securexml.mgf-algorithm | RSA OAEP アルゴリズムで使用する MGF アルゴリズム。選択できるのは以下の通りです: EncryptionConstants.MGF1_SHA1 EncryptionConstants.MGF1_SHA256 EncryptionConstants.MGF1_SHA512 デフォルト値は EncryptionConstants.MGF1_SHA1 です。 | MGF1_SHA1 | String |
camel.dataformat.securexml.pass-phrase | コンテンツを暗号化/復号化するための passPhrase として使用される文字列。passPhrase を指定する必要があります。passPhrase が指定されていない場合は、デフォルトの passPhrase が使用されます。passPhrase は、適切な暗号化アルゴリズムと組み合わせて使用する必要があります。たとえば、TRIPLEDES を使用すると、passPhase を別の 24 バイトキーのみにすることができます。 | String | |
camel.dataformat.securexml.pass-phrase-byte | コンテンツを暗号化/復号化するためのパスフレーズとして使用されるバイト。passPhrase を指定する必要があります。passPhrase が指定されていない場合は、デフォルトの passPhrase が使用されます。passPhrase は、適切な暗号化アルゴリズムと組み合わせて使用する必要があります。たとえば、TRIPLEDES を使用すると、passPhase を別の 24 バイトキーのみにすることができます。 | Byte[] | |
camel.dataformat.securexml.recipient-key-alias | 非対称キーの暗号化または復号化を実行するときに、KeyStore から受信者の公開キーまたは秘密キーを取得するときに使用される Key Alias。 | String | |
camel.dataformat.securexml.secure-tag | 暗号化/復号化のために選択された XML 要素への XPath 参照。タグが指定されていない場合、ペイロード全体が暗号化/復号化されます。 | String | |
camel.dataformat.securexml.secure-tag-contents | XML 要素を暗号化するか、XML 要素のコンテンツを暗号化するかを指定するブール値 false = 要素レベル true = 要素コンテンツレベル | false | Boolean |
camel.dataformat.securexml.xml-cipher-algorithm | XML メッセージコンテンツの暗号化/復号化に使用される暗号アルゴリズム。選択できるのは以下の通りです: XMLCipher.TRIPLEDES XMLCipher.AES_128 XMLCipher.AES_128_GCM XMLCipher.AES_192 XMLCipher.AES_192_GCM XMLCipher.AES_256 XMLCipher.AES_256_GCM XMLCipher.SEED_128 XMLCipher.CAMELLIA_128 XMLCipher.CAMELLIA_192 XMLCipher.CAMELLIA_256 デフォルト値は MLCipher.TRIPLEDES です。 | TRIPLEDES | String |
373.6.1. Enveloping XML 署名ケースでの出力ノードの決定
検証後、XML 署名ドキュメントからノードが展開され、最終的に出力メッセージボディーに返されます。enveloping XML 署名の場合、XmlSignature2Message
のデフォルト実装 DefaultXmlSignature2Message
は、ノード検索タイプ Default
に対して次の方法でこれを行います (オプション xmlSignature2Message
を参照)。
最初にオブジェクト参照が決定されます。
-
同じドキュメント参照のみが考慮されます (URI は
#
で始まる必要があります) - マニフェストを介したオブジェクトへの間接的な同じドキュメント参照も考慮されます。
- オブジェクト参照の結果の数は 1 でなければなりません。
-
同じドキュメント参照のみが考慮されます (URI は
- 次に、オブジェクトが逆参照され、オブジェクトには XML 要素が 1 つだけ含まれている必要があります。この要素は、出力ノードとして返されます。
これは、enveloping XML 署名が次のいずれかの構造を持つ必要があることを意味します。
<Signature> <SignedInfo> <Reference URI="#object"/> <!-- further references possible but they must not point to an Object or Manifest containing an object reference --> ... </SignedInfo> <Object Id="object"> <!-- contains one XML element which is extracted to the message body --> <Object> <!-- further object elements possible which are not referenced--> ... (<KeyInfo>)? </Signature>
<Signature>
<SignedInfo>
<Reference URI="#object"/>
<!-- further references possible but they must not point to an Object or Manifest containing an object reference -->
...
</SignedInfo>
<Object Id="object">
<!-- contains one XML element which is extracted to the message body -->
<Object>
<!-- further object elements possible which are not referenced-->
...
(<KeyInfo>)?
</Signature>
または構造:
<Signature> <SignedInfo> <Reference URI="#manifest"/> <!-- further references are possible but they must not point to an Object or other manifest containing an object reference --> ... </SignedInfo> <Object > <Manifest Id="manifest"> <Reference URI=#object/> </Manifest> </Objet> <Object Id="object"> <!-- contains the DOM node which is extracted to the message body --> </Object> <!-- further object elements possible which are not referenced --> ... (<KeyInfo>)? </Signature>
<Signature>
<SignedInfo>
<Reference URI="#manifest"/>
<!-- further references are possible but they must not point to an Object or other manifest containing an object reference -->
...
</SignedInfo>
<Object >
<Manifest Id="manifest">
<Reference URI=#object/>
</Manifest>
</Objet>
<Object Id="object">
<!-- contains the DOM node which is extracted to the message body -->
</Object>
<!-- further object elements possible which are not referenced -->
...
(<KeyInfo>)?
</Signature>