Author: buildbot
Date: Thu Dec 18 15:18:17 2014
New Revision: 933235

Log:
Production update by buildbot for camel

Modified:
    websites/production/camel/content/cache/main.pageCache
    websites/production/camel/content/xml-security-component.html

Modified: websites/production/camel/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/camel/content/xml-security-component.html
==============================================================================
--- websites/production/camel/content/xml-security-component.html (original)
+++ websites/production/camel/content/xml-security-component.html Thu Dec 18 
15:18:17 2014
@@ -85,7 +85,7 @@
        <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><h2 
id="XMLSecuritycomponent-XMLSecuritycomponent">XML Security 
component</h2><p><strong>Available as of Camel 2.12.0</strong></p><p>With this 
Apache Camel component, you can generate and validate XML signatures as 
described in the W3C standard <a shape="rect" class="external-link" 
href="http://www.w3.org/TR/xmldsig-core/"; rel="nofollow">XML Signature Syntax 
and Processing</a> or as described in the successor <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xmldsig-core1/"; 
rel="nofollow">version 1.1</a>. For XML Encryption support, please refer to the 
XML Security <a shape="rect" href="data-format.html">Data Format</a>.</p><p>You 
can find an introduction to XML signature <a shape="rect" class="external-link" 
href="http://www.oracle.com/technetwork/articles/javase/dig-signatures-141823.html";
 rel="nofollow">here</a>. The implementation of the component is based on <a 
shape="rect" class="external-link" href="http://docs.oracle.com/j
 avase/6/docs/technotes/guides/security/xmldsig/overview.html" 
rel="nofollow">JSR 105</a>, the Java API corresponding to the W3C standard and 
supports the Apache Santuario and the JDK provider for JSR 105. The 
implementation will first try to use the Apache Santuario provider; if it does 
not find the Santuario provider, it will use the JDK provider. Further, the 
implementation is DOM based.</p><p>Maven users will need to add the following 
dependency to their <code>pom.xml</code> for this component:</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeContent 
panelContent pdl">
+<div class="wiki-content maincontent"><h2 
id="XMLSecuritycomponent-XMLSecuritycomponent">XML Security 
component</h2><p><strong>Available as of Camel 2.12.0</strong></p><p>With this 
Apache Camel component, you can generate and validate XML signatures as 
described in the W3C standard <a shape="rect" class="external-link" 
href="http://www.w3.org/TR/xmldsig-core/"; rel="nofollow">XML Signature Syntax 
and Processing</a> or as described in the successor <a shape="rect" 
class="external-link" href="http://www.w3.org/TR/xmldsig-core1/"; 
rel="nofollow">version 1.1</a>. For XML Encryption support, please refer to the 
XML Security <a shape="rect" href="data-format.html">Data Format</a>.</p><p>You 
can find an introduction to XML signature <a shape="rect" class="external-link" 
href="http://www.oracle.com/technetwork/articles/javase/dig-signatures-141823.html";
 rel="nofollow">here</a>. The implementation of the component is based on <a 
shape="rect" class="external-link" href="http://docs.oracle.com/j
 avase/6/docs/technotes/guides/security/xmldsig/overview.html" 
rel="nofollow">JSR 105</a>, the Java API corresponding to the W3C standard and 
supports the Apache Santuario and the JDK provider for JSR 105. The 
implementation will first try to use the Apache Santuario provider; if it does 
not find the Santuario provider, it will use the JDK provider. Further, the 
implementation is DOM based.</p><p>Since Camel 2.15.0 we also provide support 
for <strong>XAdES-BES/EPES</strong> for the signer endpoint; see subsection 
"XAdES-BES/EPES for the Signer Endpoint".</p><p>Maven users will need to add 
the following dependency to their <code>pom.xml</code> for this 
component:</p><div class="code panel pdl" style="border-width: 1px;"><div 
class="codeContent panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[&lt;dependency&gt;
     &lt;groupId&gt;org.apache.camel&lt;/groupId&gt;
     &lt;artifactId&gt;camel-xmlsecurity&lt;/artifactId&gt;
@@ -283,7 +283,7 @@
             &lt;to
                 
uri=&quot;xmlsecurity:verify://detached?keySelector=#keySelectorBean&amp;amp;schemaResourceUri=Test.xsd&quot;
 /&gt;
             &lt;to uri=&quot;mock:result&quot; /&gt;]]></script>
-</div></div><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p><h3 
id="XMLSecuritycomponent-XAdES-BES/EPESfortheSignerEndpoint"><span 
style="line-height: 1.4285715;">XAdES-BES/EPES for the Signer 
Endpoint</span></h3><p><span style="line-height: 1.4285715;"><strong>Available 
as of Camel 2.15.0</strong></span></p><p><span style="line-height: 
1.4285715;">&#160;</span></p><div class="O2"><a shape="rect" 
class="external-link" 
href="http://www.etsi.org/deliver/etsi_ts/101900_101999/101903/01.04.02_60/ts_101903v010402p.pdf";
 rel="nofollow">&#376;<u>X</u>ML <u>Ad</u>vanced <u>E</u>lectronic 
<u>S</u>ignatures (XAdES)</a> defines extensions to XML Signature. This 
standard was defined by the <a shape="rect" class="external-link" 
href="http://www.etsi.org/"; rel="nofollow">European Telecomunication Standards 
Institute</a> and allows you to create signatures which are compliant to the <a 
shape="rect" class="external-link" 
href="http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?ur
 i=OJ:L:2000:013:0012:0020:EN:PDF" rel="nofollow">European Union Directive 
(1999/93/EC) on a Community framework for electronic signatrues</a>. XAdES 
defines different sets of signature properties which are called signature 
forms. We support the signature forms <strong>Basic Electronic 
Signature</strong> (XAdES-BES) and <strong>Explicit Policy Based Electronic 
Signature</strong> (XAdES-EPES) for the Signer Endpoint. The forms 
<strong>E<span style="line-height: 
1.4285715;">lectronic&#160;</span></strong><span style="line-height: 
1.4285715;"><strong>Signature with Validation Data</strong>&#160;XAdES-T and 
XAdES-C are not supported.</span></div><div class="O2"><span 
style="line-height: 1.4285715;"><br clear="none"></span></div><div 
class="O2">We support the following properties of the XAdES-EPES form ("?" 
denotes zero or one occurence):</div><div class="O2"><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b
 >XAdES-EPES Properties</b></div><div class="codeContent panelContent pdl">
+</div></div><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p><h3 
id="XMLSecuritycomponent-XAdES-BES/EPESfortheSignerEndpoint"><span 
style="line-height: 1.4285715;">XAdES-BES/EPES for the Signer 
Endpoint</span></h3><p><span style="line-height: 1.4285715;"><strong>Available 
as of Camel 2.15.0</strong></span><span style="line-height: 
1.4285715;">&#160;</span></p><div class="O2"><a shape="rect" 
class="external-link" 
href="http://www.etsi.org/deliver/etsi_ts/101900_101999/101903/01.04.02_60/ts_101903v010402p.pdf";
 rel="nofollow">&#376;<u>X</u>ML <u>Ad</u>vanced <u>E</u>lectronic 
<u>S</u>ignatures (XAdES)</a> defines extensions to XML Signature. This 
standard was defined by the <a shape="rect" class="external-link" 
href="http://www.etsi.org/"; rel="nofollow">European Telecomunication Standards 
Institute</a> and allows you to create signatures which are compliant to the <a 
shape="rect" class="external-link" 
href="http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=OJ:L:
 2000:013:0012:0020:EN:PDF" rel="nofollow">European Union Directive 
(1999/93/EC) on a Community framework for electronic signatrues</a>. XAdES 
defines different sets of signature properties which are called signature 
forms. We support the signature forms <strong>Basic Electronic 
Signature</strong> (XAdES-BES) and <strong>Explicit Policy Based Electronic 
Signature</strong> (XAdES-EPES) for the Signer Endpoint. The forms 
<strong>E<span style="line-height: 
1.4285715;">lectronic&#160;</span></strong><span style="line-height: 
1.4285715;"><strong>Signature with Validation Data</strong>&#160;XAdES-T and 
XAdES-C are not supported.</span></div><div class="O2"><span 
style="line-height: 1.4285715;"><br clear="none"></span></div><div 
class="O2">We support the following properties of the XAdES-EPES form ("?" 
denotes zero or one occurrence):</div><div class="O2"><p>&#160;</p><div 
class="code panel pdl" style="border-width: 1px;"><div class="codeHeader 
panelHeader pdl" style="border-bottom-width: 1
 px;"><b>Supported XAdES-EPES Properties</b></div><div class="codeContent 
panelContent pdl">
 <script class="theme: Default; brush: xml; gutter: false" 
type="syntaxhighlighter"><![CDATA[        &lt;QualifyingProperties Target&gt;
             &lt;SignedProperties&gt;
                 &lt;SignedSignatureProperties&gt;
@@ -299,7 +299,83 @@
                 &lt;/SignedDataObjectProperties&gt;
             &lt;/SignedProperties&gt;
         &lt;/QualifyingProperties&gt;]]></script>
-</div></div><p>The properties of the XAdES-BES form are the same except that 
the&#160;<span style="line-height: 
1.4285715;"><code>SignaturePolicyIdentifier</code> property is 
missing.&#160;</span></p><p><span style="line-height: 1.4285715;"><br 
clear="none"></span></p></div><p><span style="line-height: 
1.4285715;"><strong><br clear="none"></strong></span></p><p><span 
style="line-height: 1.4285715;"><strong><br 
clear="none"></strong></span></p><h3 id="XMLSecuritycomponent-SeeAlso">See 
Also</h3><ul><li><a shape="rect" class="external-link" 
href="http://www.w3.org/TR/xmldsig-bestpractices/"; rel="nofollow">Best 
Practices</a></li></ul></div>
+</div></div><p>The properties of the XAdES-BES form are the same except that 
the&#160;<span style="line-height: 
1.4285715;"><code>SignaturePolicyIdentifier</code> property is 
missing.&#160;</span></p><p><span style="line-height: 1.4285715;">You can 
configure the XAdES-BES/EPES properties via the 
bean&#160;<code><span>org.apache.camel.component.xmlsecurity.api.</span>XAdESSignatureProperties</code>
 
or&#160;<code>org.apache.camel.component.xmlsecurity.api.DefaultXAdESSignatureProperties.
 <span>XAdESSignatureProperties</span></code><span>&#160;does support all 
properties mentioned above except the&#160;</span></span><code><span 
style="line-height: 1.4285715;">SigningCertificate&#160;</span></code><span 
style="line-height: 1.4285715;">property. To get 
the&#160;<code><span>SigningCertificate&#160;</span></code><span>property, you 
must overwrite either the 
method&#160;<code>XAdESSignatureProperties.getSigningCertificate() 
</code>or<code>&#160;<span>XAdESSignatureProperties.</span>getSigni
 ngCertificateChain().&#160;</code>The 
class&#160;<code>DefaultXAdESSignatureProperties</code>&#160;overwrites the 
method&#160;<code>getSigningCertificate()</code>&#160;and allows you to specify 
the signing certificate via a keystore and alias. The following example shows 
all parameters which you can specify, if you do not need certain parameters you 
can just omit them.</span></span></p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>XAdES-BES/EPES example in Java 
DSL</b></div><div class="codeContent panelContent pdl">
+<script class="theme: Default; brush: java; gutter: false" 
type="syntaxhighlighter"><![CDATA[        Keystore keystore = ... // load a 
keystore
+        DefaultKeyAccessor accessor = new DefaultKeyAccessor();
+        accessor.setKeyStore(keystore);
+        accessor.setPassword(&quot;password&quot;);
+        accessor.setAlias(&quot;cert_alias&quot;); // signer key alias
+ 
+        DefaultXAdESSignatureProperties props = new 
DefaultXAdESSignatureProperties();
+        props.setNamespace(&quot;http://uri.etsi.org/01903/v1.3.2#&quot;); // 
sets the namespace for the XAdES elements; the namspace is related to the XAdES 
version, default value is &quot;http://uri.etsi.org/01903/v1.3.2#&quot;, other 
possible values are &quot;http://uri.etsi.org/01903/v1.1.1#&quot; and 
&quot;http://uri.etsi.org/01903/v1.2.2#&quot;
+        props.setPrefix(&quot;etsi&quot;); // sets the prefix for the XAdES 
elements, default value is &quot;etsi&quot;
+        
+        // signing certificate
+        props.setKeystore(keystore));
+        props.setAlias(&quot;cert_alias&quot;); // specify the alias of the 
signing certificate in the keystore = signer key alias
+        props.setDigestAlgorithmForSigningCertificate(DigestMethod.SHA256);
+        
props.setSigningCertificateURIs(Collections.singletonList(&quot;http://certuri&quot;));
+ 
+        // signing time
+        props.setAddSigningTime(true);
+ 
+        // policy
+        
props.setSignaturePolicy(XAdESSignatureProperties.SIG_POLICY_EXPLICIT_ID);
+        // also the values XAdESSignatureProperties.SIG_POLICY_NONE and 
XAdESSignatureProperties.SIG_POLICY_IMPLIED are possible
+        // then you must not specify any further policy parameters
+        props.setSigPolicyId(&quot;urn:oid:1.2.840.113549.1.9.16.6.1&quot;);
+        props.setSigPolicyIdQualifier(&quot;OIDAsURN&quot;);
+        props.setSigPolicyIdDescription(&quot;invoice version 3.1&quot;);
+        props.setSignaturePolicyDigestAlgorithm(DigestMethod.SHA256);
+        
props.setSignaturePolicyDigestValue(&quot;Ohixl6upD6av8N7pEvDABhEL6hM=&quot;);
+        props.setSigPolicyQualifiers(Arrays
+            .asList(new String[] {
+                &quot;&lt;SigPolicyQualifier 
xmlns=\&quot;http://uri.etsi.org/01903/v1.3.2#\&quot;&gt;&lt;SPURI&gt;http://test.com/sig.policy.pdf&lt;/SPURI&gt;&lt;SPUserNotice&gt;&lt;ExplicitText&gt;display
 text&lt;/ExplicitText&gt;&quot;
+                    + 
&quot;&lt;/SPUserNotice&gt;&lt;/SigPolicyQualifier&gt;&quot;, &quot;category 
B&quot; }));
+        props.setSigPolicyIdDocumentationReferences(Arrays.asList(new String[] 
{&quot;http://test.com/policy.doc.ref1.txt&quot;,
+            &quot;http://test.com/policy.doc.ref2.txt&quot; }));
+ 
+        // production place
+        props.setSignatureProductionPlaceCity(&quot;Munich&quot;);
+        props.setSignatureProductionPlaceCountryName(&quot;Germany&quot;);
+        props.setSignatureProductionPlacePostalCode(&quot;80331&quot;);
+        props.setSignatureProductionPlaceStateOrProvince(&quot;Bavaria&quot;);
+ 
+        //role
+        // you can add claimed roles either by specifying simple text or an 
XML fragment with the root element ClaimedRole 
+        props.setSignerClaimedRoles(Arrays.asList(new String[] 
{&quot;test&quot;,
+            &quot;&lt;a:ClaimedRole 
xmlns:a=\&quot;http://uri.etsi.org/01903/v1.3.2#\&quot;&gt;&lt;TestRole&gt;TestRole&lt;/TestRole&gt;&lt;/a:ClaimedRole&gt;&quot;
 }));
+        props.setSignerCertifiedRoles(Collections.singletonList(new 
XAdESEncapsulatedPKIData(&quot;Ahixl6upD6av8N7pEvDABhEL6hM=&quot;,
+            &quot;http://uri.etsi.org/01903/v1.2.2#DER&quot;, 
&quot;IdCertifiedRole&quot;)));
+ 
+        // data object format
+        props.setDataObjectFormatDescription(&quot;invoice&quot;);
+        props.setDataObjectFormatMimeType(&quot;text/xml&quot;);
+        
props.setDataObjectFormatIdentifier(&quot;urn:oid:1.2.840.113549.1.9.16.6.2&quot;);
+        props.setDataObjectFormatIdentifierQualifier(&quot;OIDAsURN&quot;);
+        props.setDataObjectFormatIdentifierDescription(&quot;identifier 
desc&quot;);
+        
props.setDataObjectFormatIdentifierDocumentationReferences(Arrays.asList(new 
String[] {
+            &quot;http://test.com/dataobject.format.doc.ref1.txt&quot;, 
&quot;http://test.com/dataobject.format.doc.ref2.txt&quot; }));
+ 
+        //commitment
+        
props.setCommitmentTypeId(&quot;urn:oid:1.2.840.113549.1.9.16.6.4&quot;);
+        props.setCommitmentTypeIdQualifier(&quot;OIDAsURN&quot;);
+        props.setCommitmentTypeIdDescription(&quot;description for commitment 
type ID&quot;);
+        props.setCommitmentTypeIdDocumentationReferences(Arrays.asList(new 
String[] {&quot;http://test.com/commitment.ref1.txt&quot;,
+            &quot;http://test.com/commitment.ref2.txt&quot; }));
+        // you can specify a commitment type qualifier either by simple text 
or an XML fragment with root element CommitmentTypeQualifier
+        props.setCommitmentTypeQualifiers(Arrays.asList(new String[] 
{&quot;commitment qualifier&quot;,
+            &quot;&lt;c:CommitmentTypeQualifier 
xmlns:c=\&quot;http://uri.etsi.org/01903/v1.3.2#\&quot;&gt;&lt;C&gt;c&lt;/C&gt;&lt;/c:CommitmentTypeQualifier&gt;&quot;
 }));
+ 
+ beanRegistry.bind(&quot;xmlSignatureProperties&quot;,props);
+ beanRegistry.bind(&quot;keyAccessorDefault&quot;,keyAccessor);
+ 
+ // you must reference the properties bean in the &quot;xmlsecurity&quot; URI
+ 
from(&quot;direct:xades&quot;).to(&quot;xmlsecurity:sign://xades?keyAccessor=#keyAccessorDefault&amp;properties=#xmlSignatureProperties&quot;)
+                     .to(&quot;mock:result&quot;);
+
+]]></script>
+</div></div><h4 id="XMLSecuritycomponent-Headers">Headers</h4><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh">Header</th><th colspan="1" rowspan="1" 
class="confluenceTh">Type</th><th colspan="1" rowspan="1" 
class="confluenceTh">Description</th></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p><code>CamelXmlSignatureXAdESQualifyingPropertiesId</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" 
rowspan="1" class="confluenceTd">for the 'Id' attribute value of 
<code>QualifyingProperties</code> element</td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelXmlSignatureXAdESSignedDataObjectPropertiesId</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" 
rowspan="1" class="confluenceTd">for the 'Id' attribute value of 
<code>SignedDataObjectProperties</code> element</td></tr><tr><td colspan="1" 
rowspan="1" class="co
 
nfluenceTd"><p><code>CamelXmlSignatureXAdESSignedSignaturePropertiesId</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" 
rowspan="1" class="confluenceTd">for the 'Id' attribute value of&#160; 
<code>SignedSignatureProperties</code> element</td></tr><tr><td colspan="1" 
rowspan="1" 
class="confluenceTd"><p><code>CamelXmlSignatureXAdESDataObjectFormatEncoding</code></p></td><td
 colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" 
rowspan="1" class="confluenceTd"><span>for the value of the 
</span><code>Encoding</code><span> element of the 
</span><code>DataObjectFormat</code><span> element</span></td></tr><tr><td 
colspan="1" rowspan="1" 
class="confluenceTd"><code>CamelXmlSignatureXAdESNamespace</code></td><td 
colspan="1" rowspan="1" class="confluenceTd">String</td><td colspan="1" 
rowspan="1" class="confluenceTd">&#160;overwrites the XAdES namespace parameter 
value</td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><c
 ode>CamelXmlSignatureXAdESPrefix</code></p></td><td colspan="1" rowspan="1" 
class="confluenceTd">String</td><td colspan="1" rowspan="1" 
class="confluenceTd">overwrites the XAdES prefix parameter 
value</td></tr></tbody></table></div><h4 
id="XMLSecuritycomponent-Limitations">Limitations</h4><ul><li>No support for 
signature form XAdES-T and XAdES-C</li><li>Only signer part 
implemented.</li><li>No support&#160;for the 
'<code>QualifyingPropertiesReference</code>' element (see section 6.3.2 of 
spec).</li><li>No support for the <code>Transforms</code> element contained in 
the&#160;<code>SignaturePolicyId</code> element contained in 
the&#160;<code>SignaturePolicyIdentifier element</code></li><li>No support of 
the <code>CounterSignature</code> element --&gt; no support for 
the&#160;<code>UnsignedProperties</code> element</li><li>At most one 
<code>DataObjectFormat</code> element. More than one <code>DataObjectFormat 
</code>element makes no sense &#160;because we have only one data object whic
 h is signed (this is the incoming message body to the XML signer 
endpoint).</li><li>At most one <code>CommitmentTypeIndication</code> element. 
More than one <code>CommitmentTypeIndication</code>element makes no sense 
&#160;because we have only one data object which is signed (this is the 
incoming message body to the XML signer endpoint).</li><li><p>A 
<code>CommitmentTypeIndication</code> element contains always the 
<code>AllSignedDataObjects</code> element. The <code>ObjectReference</code> 
element within <code>CommitmentTypeIndication</code>&#160; element is not 
supported.</p></li><li>The<code> AllDataObjectsTimeStamp</code> element is not 
supported</li><li>The<code> IndividualDataObjectsTimeStamp</code> element is 
not supported</li></ul></div><h3 id="XMLSecuritycomponent-SeeAlso">See 
Also</h3><ul><li><a shape="rect" class="external-link" 
href="http://www.w3.org/TR/xmldsig-bestpractices/"; rel="nofollow">Best 
Practices</a></li></ul></div>
         </td>
         <td valign="top">
           <div class="navigation">


Reply via email to