Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.第186章 XML セキュリティーコンポーネント
XML セキュリティーコンポーネント リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.12.0 から利用可能
この Apache Camel コンポーネントを使用すると、W3C 標準 XML 署名 構文および処理で説明されているように、または後継 バージョン 1.1 で説明されているように、XML 署名を生成および 検証できます。XML 暗号化サポートについては、XML Security Data Format を参照してください。
XML 署名の概要は、を参照して ください。コンポーネントの実装は JSR 105 (W3C 標準に対応する Java API)をベースとしており、JSR 105 の Apache Santuario および JDK プロバイダーをサポートします。この実装は、最初に Apache Santuario プロバイダーの使用を試みます。Santuario プロバイダーが見つからない場合は、JDK プロバイダーを使用します。さらに、実装は DOM ベースです。
Camel 2.15.0 以降、署名側のエンドポイントに対して XAdES-BES/EPES もサポートします。「Signer エンドポイントの XAdES-BES/EPES」 を参照してください。
Maven ユーザーは、このコンポーネントの
pom.xml
に以下の依存関係を追加する必要があります。
XML 署名ラッピングモード リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
XML 署名は、エンベロープ、エンベロープ、および切り離された XML 署名によって異なります。エンベロープされた XML 署名の場合、XML 署名は署名済み XML ドキュメントによってラップされます。つまり、XML 署名要素は親要素の子要素で、署名された XML ドキュメントに属します。エンベロープ XML 署名の場合、XML 署名に署名されたコンテンツが含まれます。その他のケースはすべて、デタッチされた XML 署名と呼ばれます。Camel 2.14.0 以降、特定の形式の XML 署名がサポートされます。
エンベロープされた XML 署名の場合、サポートされる生成された XML 署名の構造は次のとおりです(変数は [] で囲まれます)。
エンベロープ XML 署名の場合、サポートされている生成された XML 署名の構造は次のとおりです。
Camel 2.14.0 では、以下の構造を持つ分離された XML 署名がサポートされます( 「署名要素のシブリングとしての分離された XML 署名」も参照してください)。
URI 形式 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
camel コンポーネントは、以下の URI 形式の 2 つのエンドポイントで設定されます。
xmlsecurity:sign:name[?options] xmlsecurity:verify:name[?options]
xmlsecurity:sign:name[?options]
xmlsecurity:verify:name[?options]
- 署名側のエンドポイントでは、インメッセージの本文の XML 署名を生成できます。これは、XML ドキュメントまたはプレーンテキストのいずれかになります。エンベロープされたエンベロープ( Camel 12.14より)の XML 署名は、out-message のボディーに設定されます。
- ベリファイアのエンドポイントでは、エンベロープまたはエンベロープ XML 署名、またはインメッセージの本文に含まれるエンベロープまたはエンベロープ( Camel 2.14.0の) XML 署名を複数検証できます。検証に成功すると、元のコンテンツが XML 署名から抽出され、アウトメッセージの本文に設定されます。
- URI の
name
部分をユーザーが選択して、Camel コンテキスト内の異なる署名/検証エンドポイントを区別できます。
基本的な例 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
以下の例は、コンポーネントの基本的な使用方法を示しています。
from("direct:enveloping").to("xmlsecurity:sign://enveloping?keyAccessor=#accessor", "xmlsecurity:verify://enveloping?keySelector=#selector","mock:result")
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" />
<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
(以下を参照)で設定できます。署名側のエンドポイントは、エンベロープ XML 署名を作成します。エンベロープされた XML 署名を作成する場合は、Signature 要素の親要素を指定する必要があります。詳細は、options parentLocalName
を参照してください。
デタッチされた XML 署名の作成については、「署名要素のシブリングとしての分離された XML 署名」 を参照してください。
一般的な署名およびオプションの検証 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
エンドポイント(signer および verifier)の両方に使用できるオプションもあります。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
uriDereferencer
|
javax.xml.crypto.URIDereferencer |
null
|
URI dereferencer。逆参照を制限する場合や、逆参照に特別な要件がある場合は、ここでは独自の URI 逆参照を指定します。 |
baseUri
|
String
|
null
|
URI 逆参照で使用されるベース URI。相対 URI はベース URI と連結されます。 |
cryptoContextProperties
|
Map<String, ? extends Object>
|
null
|
暗号コンテキストのプロパティー。See javax.xml.crypto.XMLCryptoContext.setProperty(String, Object) .プロパティーはプロバイダーによって異なります。たとえば、JDK プロバイダー XMLDSig には、マニフェストの検証を有効にするためのプロパティー org.jcp.xml.dsig.validateManifests があります。XML ベリファイアでは、デフォルトでは Boolean.TRUE , org.jcp.xml.dsig.validateManifests の値に設定されています。javax.xml.crypto.dsig.cacheReference secureValidation オプションが true の場合、さらに XML ベリファイアに対してプロパティー org.apache.jcp.xml.dsig.secureValidation と org.jcp.xml.dsig.secureValidation が splunk に設定されます。Boolean.TRUE これらの機能をオフにする場合は、プロパティーの値を Boolean.FALSE に設定する必要があります。
|
disallowDoctypeDecl
|
Boolean
|
Boolean.TRUE
|
受信 XML メッセージで DTD DOCTYPE 宣言を拒否するかどうかを示します。 |
omitXmlDeclaration
|
Boolean
|
Boolean.FALSE
|
XML 宣言ヘッダーを出力 XML メッセージで省略する必要があるかどうかを示します。 |
clearHeaders
|
Boolean
|
Boolean.TRUE
|
XmlSignatureConstants で定義された XML 署名メッセージヘッダーが署名者または検証者処理の最後に削除されるべきかどうかを示します。 |
schemaResourceUri
|
String
|
null
|
Camel 2.14.0 以降XML スキーマファイルへのクラスパス。設定されている場合、XML ドキュメントは XML スキーマに対して検証されます。タイプ ID の属性を判断するには、デタッチされた署名の場合に設定する必要があります。この値はヘッダー CamelXmlSignatureSchemaResourceUri で上書きできます。詳細は、「署名要素のシブリングとしての分離された XML 署名」 を参照してください。ID 属性への参照 URI を持つエンベロープ署名の場合、スキーマも必要になります(署名オプション contentReferenceUri を参照してください)。
|
outputXmlEncoding
|
String
|
null
|
Camel 2.15.0 以降出力 XML ドキュメントの文字エンコーディング。null の場合、UTF-8 が使用されます。 |
署名オプション リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
署名側のエンドポイントには以下のオプションがあります。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
keyAccessor
|
KeyAccessor |
null
|
署名キーと KeyInfo インスタンスを提供します。キーストアを使用する実装の例は、DefaultKeyAccessorを参照してください。 |
addKeyInfoReference
|
Boolean
|
Boolean.TRUE
|
キーアクセサーが提供する KeyInfo 要素を参照する Reference 要素を XML 署名に追加するかどうかを示します。
|
signatureAlgorithm
|
String
|
http://www.w3.org/2000/09/xmldsig#rsa-sha1
|
ダイジェストおよび暗号化アルゴリズムで設定される署名アルゴリズム。ダイジェストアルゴリズムは SignedInfo 要素のダイジェストを計算するために使用され、暗号化アルゴリズムはこのダイジェストに署名するために使用されます。設定可能な値: http://www.w3.org/2000/09/xmldsig#dsa-sha1 , http://www.w3.org/2000/09/xmldsig#rsa-sha1 , http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 , http://www.w3.org/2001/04/xmldsig-more#rsa-sha384 , http://www.w3.org/2001/04/xmldsig-more#rsa-sha512
|
digestAlgorithm
|
String
|
説明 を参照してください。 |
メッセージ内ボディーのダイジェストを計算するダイジェストアルゴリズム。指定のない場合は、署名アルゴリズムのダイジェストアルゴリズムが使用されます。使用できる値は http://www.w3.org/2000/09/xmldsig#sha1 、http://www.w3.org/2001/04/xmlenc#sha256 、http://www.w3.org/2001/04/xmldsig-more#sha384 、および http://www.w3.org/2001/04/xmlenc#sha512 です。
|
parentLocalName
|
String
|
null |
Signature 要素の親のローカル名。Signature 要素は、親の子の最後に追加されます。エンベロープされた XML 署名に必要です。このオプションと parentXpath オプションが null の場合は、エンベロープ XML 署名が作成されます。parentNamespace も参照してください。または、parentXpath オプションを使用して親を指定することもできます。
|
parentNamespace
|
String
|
null |
Signature 要素の親の名前空間。オプション parentLocalName を参照してください。
|
parentXpath
|
XPathFilterParameterSpec
|
null |
Camel 2.15.0 以降XPath を Signature 要素の親に追加します。Signature 要素は、親の子の最後に追加されます。エンベロープされた XML 署名に必要です。このオプションと parentLocalName オプションが null の場合は、エンベロープ XML 署名が作成されます。または、parentLocalName オプションを使用して親を指定することもできます。例: /p1:root/SecurityItem[last()] この例では、SecurityItem という名前の最後のシブリングを選択します。このような選択は、parentLocalName オプションではできません。
|
canonicalizationMethod
|
javax.xml.crypto.AlgorithmMethod | C14n | ダイジェストの計算前に SignedInfo 要素の正規化に使用される正規化メソッド。ヘルパーメソッド XmlSignatureHelper.getCanonicalizationMethod (String algorithm)または getCanonicalizationMethod (String algorithm, List<String> inclusiveNamespacePrefixes)を使用して正規化メソッドを作成できます。 |
transformMethods
|
List<javax.xml.crypto.AlgorithmMethod>
|
説明 を参照してください。 |
ダイジェストが計算される前にメッセージボディーで実行される変換。デフォルトでは、C14n が追加され、エンベロープ署名の場合は(
parentLocalName を参照)、http://www.w3.org/2000/09/xmldsig#enveloped-signature もリストの位置 0 に追加されます。XmlSignatureHelper のメソッドを使用して変換メソッドを作成します。
Camel ヘッダー
CamelXmlSignatureTransformMethods はこのオプションを上書きします( Camel 2.17.0 以降)。ヘッダーの値は String タイプである必要があります。変換アルゴリズムをコンマ区切りリストで指定します(例: http://www.w3.org/2000/09/xmldsig#enveloped-signature,http://www.w3.org/TR/2001/REC-xml-c14n-20010315 )。ヘッダーでは、http://www.w3.org/TR/1999/REC-xslt-19991116 、http://www.w3.org/2002/06/xmldsig-filter2 、http://www.w3.org/TR/1999/REC-xpath-19991116 などのパラメーターが必要な変換アルゴリズムを指定できません。
|
prefixForXmlSignatureNamespace
|
String
|
ds
|
XML 署名名前空間の接頭辞。null が指定されているか、空の文字列の場合は、署名名前空間に接頭辞は使用されません。
|
contentReferenceUri
|
String
|
説明 を参照してください。 |
署名されたコンテンツ(メッセージ本文)への参照の URI。null でエンベロープされた XML 署名の場合、URI は空の文字列に設定されます。null でエンベロープ XML 署名の場合、URI は generated_object_id に設定されます。これは、参照が in-message ボディーが含まれる Object 要素を参照することを意味します。メッセージ内ボディーに署名する必要がない場合は、このオプションを使用して in-message ボディーの特定部分を参照できます。この値はヘッダー CamelXmlSignatureContentReferenceUri で上書きできます。XML ID 属性の値(例: #ID_value )を使用する場合は、入力 XML ドキュメントに含まれる doctype 定義を使用するか、オプション schemaResourceUri で指定できる XML スキーマドキュメントを介して ID 属性に関する情報を提供する必要があります。schemaResourceURi オプションを使用した XML スキーマによる ID 属性の定義は、エンベロープ署名ケースでのみ機能します。このオプションが xpathsToIdAttributes に設定されている場合、このオプションはデタッチされた署名の場合は無視されます。
|
contentReferenceType
|
String
|
null | コンテンツ参照の type 属性の値。この値はヘッダー CamelXmlSignatureContentReferenceType で上書きできます。 |
plainText
|
Boolean
|
Boolean.FALSE |
メッセージ内の本文にプレーンテキストが含まれているかどうかを示します。通常、署名ジェネレーターは受信メッセージのボディーを XML として扱います。メッセージ本文がプレーンテキストの場合は、このオプションを true に設定する必要があります。値はヘッダー CamelXmlSignatureMessageIsPlainText で上書きできます。
|
plainTextEncoding
|
String
|
null |
plainText オプションが true に設定されている場合にのみ使用されます。次に、プレーンテキストのエンコーディングを指定できます。null の場合、UTF-8 が使用されます。値はヘッダー CamelXmlSignatureMessageIsPlainTextEncoding で上書きできます。
|
properties
|
XmlSignatureProperties | null | 追加のプロパティーが含まれる XML 署名に参照およびオブジェクトを追加するには、XmlSignatureProperties インターフェイスを実装する Bean を指定できます。 |
contentObjectId
|
String
|
null |
Object 要素の Id 属性の値。エンベロープ XML 署名ケースでのみ使用されます。null の場合、一意の値が生成されます。2.12.2 から利用可能
|
xpathsToIdAttributes
|
List<XPathFilterParameterSpec>
|
空のリスト
|
2.14.0 以降署名する要素の ID 属性に対する XPATH 式のリスト。デタッチされた XML 署名に使用されます。は、オプションと組み合わせてのみ使用できます。
schemaResourceUri 値はヘッダーCamelXmlSignatureXpathsToIdAttributes で上書きできます。オプション parentLocalNam が同時に 設定されている場合、例外が発生します。クラス XPathFilterParameterSpec にはパッケージ javax.xml.crypto.dsig.spec があります。詳細は、サブ章のデタッチされた XML 署名(署名要素 のシブリングとしての XML 署名)を参照してください。
|
signatureId
|
String
|
null
|
2.14.0 以降Signature 要素の Id 属性の値。
null の場合は、一意の ID が生成されます。値が空の文字列("")の場合、Signature 要素に Id 属性は追加されません。
|
オプションの検証 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
verifier エンドポイントには以下のオプションがあります。
名前 | タイプ | デフォルト | 説明 |
---|---|---|---|
keySelector
|
javax.xml.crypto.KeySelector |
null
|
XML 署名を検証するためのキーを提供します。キーストアを使用する実装の例は、DefaultKeySelector を参照してください。 |
xmlSignatureChecker
|
XmlSignatureChecker |
null
|
このインターフェイスを使用すると、検証の実行前にアプリケーションが XML 署名を確認できます。この手順は、http://www.w3.org/TR/xmldsig-bestpractices/#check-what-is-signedで推奨されます。 |
validationFailedHandler
|
ValidationFailedHandler | DefaultValidationFailedHandler |
さまざまな検証に失敗した状況を処理します。デフォルトの実装は、さまざまな状況で特定の例外を出力します(すべての例外には org.apache.camel.component.xmlsecurity.api のパッケージ名があり、XmlSignatureInvalidException のサブクラスです)。署名値の検証に失敗すると、XmlSignatureInvalidValueException が出力されます。参照検証に失敗すると、XmlSignatureInvalidContentHashException が出力されます。詳細は、JavaDoc を参照してください。
|
xmlSignature2Message
|
XmlSignature2Message | DefaultXmlSignature2Message |
検証後に XML 署名を ouput-message にマップする Bean。このマッピングは、outputNodeSearchType オプション、outputNodeSearch オプション、および removeSignatureElements オプションを使用して設定できます。デフォルトの実装では、3 つの出力ノード検索タイプ Default、ElementName、および XPath に関連する 3 つの可能性が提供されます。デフォルトの実装はシリアライズされ、ouput メッセージのボディーに設定されるノードを決定します。検索タイプが "ElementName" の場合、ouput ノード(この場合は要素でなければならない)は、検索値で定義されたローカル名と名前空間によって決定されます(オプション outputNodeSearch を参照)。検索タイプが XPath の場合、出力ノードは検索値で指定された XPath で決定されます(この場合、ouput ノードは "Element"、"TextNode"、または "Document")のタイプになります)。出力ノード検索タイプが Default の場合、以下のルールが適用されます。エンベロープされた XML 署名の場合(URI="" の参照で、"http://www.w3.org/2000/09/xmldsig#enveloped-signature")は、Signature 要素のない受信 XML ドキュメントが出力メッセージボディーに設定されます。非承認の XML 署名の場合、メッセージボディーは参照されるオブジェクトから決定されます。詳細は、Enveloping XML Signature Case のOutput Node Determination の章を参照してください。
|
outputNodeSearchType
|
String
|
Default
|
出力ノードの検索タイプを決定します。オプション xmlSignature2Message を参照してください。デフォルトの実装 DefaultXmlSignature2Message は、Default、ElementName、および XPath の 3 つの検索タイプをサポートします。
|
outputNodeSearch
|
Object
|
null
|
出力ノード検索の値を検索します。タイプは検索タイプによって異なります。デフォルトの検索実装 DefaultXmlSignature2Message の場合、以下の値を指定できます。検索タイプが Default の場合、検索値は使用されません。検索タイプが "ElementName" の場合、検索値には出力要素の名前空間とローカル名が含まれます。名前空間は括弧内に置く必要があります。検索タイプが XPath の場合、検索値には XPath を表す javax.xml.crypto.dsig.spec.XPathFilterParameterSpec のインスタンスが含まれます。このようなインスタンスは 、XmlSignatureHelper メソッド .getXpathFilter (String xpath, Map<String, String> namespaceMap)を使用し て作成できます。XPath は、タイプ Element、TextNode、または Document で使用できる出力ノードを決定します。
|
removeSignatureElements
|
Boolean
|
Boolean.FALSE
|
エンベロープされた XML 署名ケースの出力メッセージの署名要素を削除するインジケーター。XmlSignature2Message インスタンスで使用されます。デフォルトの実装では、このインジケーターを使用して 2 つの検索タイプElementName と XPath を使用します。
|
secureValidation
|
Boolean
|
Boolean.TRUE
|
セキュアな検証を有効にします。true の場合、セキュアな検証が有効になります。詳細は こちら を参照してください。 |
Enveloping XML 署名ケースの出力ノードの決定 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
検証後、ノードは XML 署名ドキュメントから抽出され、最終的に output-message ボディーに返されます。XML 署名の場合、デフォルトの実装 Default XmlSignature2Message は、次の方法でノード検索タイプ Default に対してこれを行います(オプション
xmlSignature2Message
を参照)。
まず、オブジェクト参照が決定されます。
- 同じドキュメント参照のみが考慮されます(URI は # で始まる必要があります)。
- また、マニフェストを使用したオブジェクトへの間接的なドキュメント参照も考慮されます。
- 結果のオブジェクト参照数は 1 である必要があります。
次に、オブジェクトは逆参照され、オブジェクトには XML 要素が 1 つだけ含まれる必要があります。この要素は、出力ノードとして返されます。
これは、エンベロープ XML 署名の構造が必要であることを意味します。
または構造です。
署名要素のシブリングとしての分離された XML 署名 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
2.14.0 以降
署名が署名された要素のシブリングであるデタッチされた署名を作成できます。以下の例には、2 つの分離署名が含まれます。最初の署名は要素 C 用で、2 つ目の署名は要素 A 用です。署名は ネスト化され ます。2 つ目の署名は、最初の署名が含まれる要素 A の です。
例186.1 デタッチされた XML 署名の例
この例では、複数の要素に署名でき、その要素ごとに署名がシブリングとして作成されます。署名する要素には、タイプ ID の属性が必要です。属性の ID タイプは XML スキーマで定義する必要があります(オプション schemaResourceUriを参照)。タイプ ID の属性を参照する XPATH 式の一覧を指定します(オプション xpathsToIdAttributesを参照してください)。これらの属性は、署名する要素を決定します。要素は、keyAccessor Bean によって指定された同じキーで署名されます。より高い(=deeper)階層レベルの Ements が最初に署名されます。この例では、要素 "C" は要素 A の前に署名されています。
例186.2 Java DSL の例
from("direct:detached") .to("xmlsecurity:sign://detached?keyAccessor=#keyAccessorBeant&xpathsToIdAttributes=#xpathsToIdAttributesBean&schemaResourceUri=Test.xsd") .to("xmlsecurity:verify://detached?keySelector=#keySelectorBean&schemaResourceUri=org/apache/camel/component/xmlsecurity/Test.xsd") .to("mock:result");
from("direct:detached")
.to("xmlsecurity:sign://detached?keyAccessor=#keyAccessorBeant&xpathsToIdAttributes=#xpathsToIdAttributesBean&schemaResourceUri=Test.xsd")
.to("xmlsecurity:verify://detached?keySelector=#keySelectorBean&schemaResourceUri=org/apache/camel/component/xmlsecurity/Test.xsd")
.to("mock:result");
例186.3 Spring の例
Signer エンドポイントの XAdES-BES/EPES リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Camel 2.15.0 NORMAL XML Advanced Electronic Signatures (XAdES) では、XML Signature への 拡張機能を定義します。この標準は ヨーロッパの Telecomunication Standards Institute によって定義され、電子署名のコミュニティーフレームワークで European Union Directive (1999/93/EC)に準拠する署名を 作成できます。XAdES は、署名フォームと呼ばれるさまざまな署名プロパティーのセットを定義します。Signer Endpoint の署名フォーム Basic Electronic Signature (XAdES-BES)および Explicit Policy Based Electronic Signature (XAdES-EPES)をサポートします。Validation Data XAdES-T および XAdES-C を使用した Electronic Signature 形式はサポートされません。XAdES-EPES フォームの以下のプロパティーをサポートします("?" はゼロまたは 1 回を意味します)。
|
XAdES-BES フォームのプロパティーは、
SignaturePolicyIdentifier
プロパティーが XAdES-BES の一部ではない点以外は同じです。
XAdES-BES/EPES プロパティーは Bean
org.apache.camel.component.xmlsecurity.api.XAdESSignatureProperties
で設定でき、org.apache.camel.component.xmlsecurity.api.DefaultXAdESSignatureProperties. XAdESSignatureProperties
は、SigningCertificate
プロパティーを除くすべてのプロパティーをサポートします。SigningCertificate
プロパティーを取得するには、XAdESSignatureProperties.getSigningCertificate()
or XAdESSignatureProperties.getSigningCertificateChain().
The class DefaultXAdESSignatureProperties
メソッドを上書きする必要があります。また、キーストアとエイリアスを介して署名証明書を指定できるようにする必要があります。getSigningCertificate()
以下の例は、指定できるすべてのパラメーターを示しています。特定のパラメーターが必要ない場合は、それらを省略できます。
|
|
Headers リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
ヘッダー | タイプ | 説明 |
---|---|---|
CamelXmlSignatureXAdESQualifyingPropertiesId
|
文字列 |
QualifyingProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESSignedDataObjectPropertiesId
|
文字列 |
SignedDataObjectProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESSignedSignaturePropertiesId
|
文字列 |
SignedSignatureProperties 要素の 'Id' 属性値の場合
|
CamelXmlSignatureXAdESDataObjectFormatEncoding
|
文字列 |
DataObjectFormat 要素の Encoding 要素の値
|
CamelXmlSignatureXAdESNamespace
|
文字列 | XAdES 名前空間パラメーターの値を上書きします。 |
CamelXmlSignatureXAdESPrefix
|
文字列 | XAdES 接頭辞パラメーターの値を上書きします。 |
XAdES バージョン 1.4.2 に関する制限 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
- XAdES-T および XAdES-C の署名形式はサポートされません。
- 署名側の部分のみが実装されます。検証用の部分は現在利用できません。
- '
QualifyingPropertiesReference
' 要素はサポートされません(仕様のセクション 6.3.2 を参照)。 SignaturePolicyId
要素に含まれるTransforms
要素のサポートはありません:SignaturePolicyIdentifier element
CounterSignature
要素のサポートなし -->UnsignedProperties
要素のサポートなし- 最大 1 つの
DataObjectFormat
要素。署名されるデータオブジェクトが 1 つしかないため、複数のDataObjectFormat
要素は意味を持ちません(これは XML 署名エンドポイントへの受信メッセージボディーです)。 - 最大 1 つの
CommitmentTypeIndication
要素。署名されるデータオブジェクトが 1 つしかないため、複数のCommitmentTypeIndication
要素は意味を持ちません(これは XML 署名エンドポイントへの受信メッセージボディーです)。 CommitmentTypeIndication
要素には、常にAllSignedDataObjects
要素が含まれます。CommitmentTypeIndication
要素内のObjectReference
要素はサポートされません。AllDataObjectsTimeStamp
要素はサポートされません。IndividualDataObjectsTimeStamp
要素はサポートされません。
関連項目 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!