You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by pp...@apache.org on 2023/03/31 15:54:50 UTC

[camel-quarkus] 02/06: Add back XML Security Sign #4684

This is an automated email from the ASF dual-hosted git repository.

ppalaga pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-quarkus.git

commit 6fb1b58d9e3bfb6729bf8e1fd8c89a9d67977eab
Author: Peter Palaga <pp...@redhat.com>
AuthorDate: Fri Mar 31 11:45:35 2023 +0200

    Add back XML Security Sign #4684
---
 .../ROOT/examples/components/xmlsecurity-sign.yml  | 13 +++++
 .../examples/components/xmlsecurity-verify.yml     | 13 +++++
 .../ROOT/examples/dataformats/xmlSecurity.yml      | 13 +++++
 docs/modules/ROOT/nav.adoc                         |  1 +
 .../pages/reference/extensions/xmlsecurity.adoc    | 60 ++++++++++++++++++++++
 extensions/pom.xml                                 |  2 +-
 .../main/resources/META-INF/quarkus-extension.yaml |  1 +
 integration-tests/pom.xml                          |  2 +-
 .../xmlsecurity/it/XmlsecurityProducers.java       | 22 ++++----
 .../xmlsecurity/it/XmlsecurityResource.java        |  1 -
 .../xmlsecurity/it/XmlsecurityRoutes.java          |  2 +-
 poms/bom/pom.xml                                   |  8 +--
 poms/bom/src/main/generated/flattened-full-pom.xml | 15 ++++++
 .../src/main/generated/flattened-reduced-pom.xml   | 15 ++++++
 .../generated/flattened-reduced-verbose-pom.xml    | 15 ++++++
 tooling/scripts/test-categories.yaml               |  1 +
 16 files changed, 165 insertions(+), 19 deletions(-)

diff --git a/docs/modules/ROOT/examples/components/xmlsecurity-sign.yml b/docs/modules/ROOT/examples/components/xmlsecurity-sign.yml
new file mode 100644
index 0000000000..1b2766e800
--- /dev/null
+++ b/docs/modules/ROOT/examples/components/xmlsecurity-sign.yml
@@ -0,0 +1,13 @@
+# Do not edit directly!
+# This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+cqArtifactId: camel-quarkus-xmlsecurity
+cqArtifactIdBase: xmlsecurity
+cqNativeSupported: true
+cqStatus: Stable
+cqDeprecated: false
+cqJvmSince: 1.1.0
+cqNativeSince: 1.7.0
+cqCamelPartName: xmlsecurity-sign
+cqCamelPartTitle: XML Security Sign
+cqCamelPartDescription: Sign XML payloads using the XML signature specification.
+cqExtensionPageTitle: XML Security Sign
diff --git a/docs/modules/ROOT/examples/components/xmlsecurity-verify.yml b/docs/modules/ROOT/examples/components/xmlsecurity-verify.yml
new file mode 100644
index 0000000000..24b771ec86
--- /dev/null
+++ b/docs/modules/ROOT/examples/components/xmlsecurity-verify.yml
@@ -0,0 +1,13 @@
+# Do not edit directly!
+# This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+cqArtifactId: camel-quarkus-xmlsecurity
+cqArtifactIdBase: xmlsecurity
+cqNativeSupported: true
+cqStatus: Stable
+cqDeprecated: false
+cqJvmSince: 1.1.0
+cqNativeSince: 1.7.0
+cqCamelPartName: xmlsecurity-verify
+cqCamelPartTitle: XML Security Verify
+cqCamelPartDescription: Verify XML payloads using the XML signature specification.
+cqExtensionPageTitle: XML Security Sign
diff --git a/docs/modules/ROOT/examples/dataformats/xmlSecurity.yml b/docs/modules/ROOT/examples/dataformats/xmlSecurity.yml
new file mode 100644
index 0000000000..3c421c91a3
--- /dev/null
+++ b/docs/modules/ROOT/examples/dataformats/xmlSecurity.yml
@@ -0,0 +1,13 @@
+# Do not edit directly!
+# This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+cqArtifactId: camel-quarkus-xmlsecurity
+cqArtifactIdBase: xmlsecurity
+cqNativeSupported: true
+cqStatus: Stable
+cqDeprecated: false
+cqJvmSince: 1.1.0
+cqNativeSince: 1.7.0
+cqCamelPartName: xmlSecurity
+cqCamelPartTitle: XML Security
+cqCamelPartDescription: Encrypt and decrypt XML payloads using Apache Santuario.
+cqExtensionPageTitle: XML Security Sign
diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc
index b543008ca8..e651f97551 100644
--- a/docs/modules/ROOT/nav.adoc
+++ b/docs/modules/ROOT/nav.adoc
@@ -300,6 +300,7 @@
 *** xref:reference/extensions/xml-io-dsl.adoc[XML IO DSL]
 *** xref:reference/extensions/xml-jaxb.adoc[XML JAXB]
 *** xref:reference/extensions/xml-jaxp.adoc[XML JAXP]
+*** xref:reference/extensions/xmlsecurity.adoc[XML Security Sign]
 *** xref:reference/extensions/xmpp.adoc[XMPP]
 *** xref:reference/extensions/xpath.adoc[XPath]
 *** xref:reference/extensions/saxon.adoc[XQuery]
diff --git a/docs/modules/ROOT/pages/reference/extensions/xmlsecurity.adoc b/docs/modules/ROOT/pages/reference/extensions/xmlsecurity.adoc
new file mode 100644
index 0000000000..cc02334a13
--- /dev/null
+++ b/docs/modules/ROOT/pages/reference/extensions/xmlsecurity.adoc
@@ -0,0 +1,60 @@
+// Do not edit directly!
+// This file was generated by camel-quarkus-maven-plugin:update-extension-doc-page
+[id="extensions-xmlsecurity"]
+= XML Security Sign
+:linkattrs:
+:cq-artifact-id: camel-quarkus-xmlsecurity
+:cq-native-supported: true
+:cq-status: Stable
+:cq-status-deprecation: Stable
+:cq-description: Sign XML payloads using the XML signature specification.
+:cq-deprecated: false
+:cq-jvm-since: 1.1.0
+:cq-native-since: 1.7.0
+
+ifeval::[{doc-show-badges} == true]
+[.badges]
+[.badge-key]##JVM since##[.badge-supported]##1.1.0## [.badge-key]##Native since##[.badge-supported]##1.7.0##
+endif::[]
+
+Sign XML payloads using the XML signature specification.
+
+[id="extensions-xmlsecurity-whats-inside"]
+== What's inside
+
+* xref:{cq-camel-components}:dataformats:xmlSecurity-dataformat.adoc[XML Security data format]
+* xref:{cq-camel-components}::xmlsecurity-sign-component.adoc[XML Security Sign component], URI syntax: `xmlsecurity-sign:name`
+* xref:{cq-camel-components}::xmlsecurity-verify-component.adoc[XML Security Verify component], URI syntax: `xmlsecurity-verify:name`
+
+Please refer to the above links for usage and configuration details.
+
+[id="extensions-xmlsecurity-maven-coordinates"]
+== Maven coordinates
+
+https://{link-quarkus-code-generator}/?extension-search=camel-quarkus-xmlsecurity[Create a new project with this extension on {link-quarkus-code-generator}, window="_blank"]
+
+Or add the coordinates to your existing project:
+
+[source,xml]
+----
+<dependency>
+    <groupId>org.apache.camel.quarkus</groupId>
+    <artifactId>camel-quarkus-xmlsecurity</artifactId>
+</dependency>
+----
+ifeval::[{doc-show-user-guide-link} == true]
+Check the xref:user-guide/index.adoc[User guide] for more information about writing Camel Quarkus applications.
+endif::[]
+
+[id="extensions-xmlsecurity-camel-quarkus-limitations"]
+== Camel Quarkus limitations
+
+There is currently no native mode support for XSLT based transform methods on the `xmlsecurity` producer via the `transformMethods` URI option.
+
+
+[id="extensions-xmlsecurity-ssl-in-native-mode"]
+== SSL in native mode
+
+This extension auto-enables SSL support in native mode. Hence you do not need to add
+`quarkus.ssl.native=true` to your `application.properties` yourself. See also
+https://quarkus.io/guides/native-and-ssl[Quarkus SSL guide].
diff --git a/extensions/pom.xml b/extensions/pom.xml
index 28335767c6..e0719852c8 100644
--- a/extensions/pom.xml
+++ b/extensions/pom.xml
@@ -245,7 +245,7 @@
         <module>vm</module>
         <module>weather</module>
         <module>xchange</module>
-        <!--<module>xmlsecurity</module> https://github.com/apache/camel-quarkus/issues/4478 -->
+        <module>xmlsecurity</module>
         <module>xpath</module>
         <module>xslt</module>
         <!--<module>xstream</module> https://github.com/apache/camel-quarkus/issues/4477 -->
diff --git a/extensions/xmlsecurity/runtime/src/main/resources/META-INF/quarkus-extension.yaml b/extensions/xmlsecurity/runtime/src/main/resources/META-INF/quarkus-extension.yaml
index 833c2fde37..88d25699b2 100644
--- a/extensions/xmlsecurity/runtime/src/main/resources/META-INF/quarkus-extension.yaml
+++ b/extensions/xmlsecurity/runtime/src/main/resources/META-INF/quarkus-extension.yaml
@@ -23,6 +23,7 @@
 ---
 name: "Camel XML Security Sign"
 description: "Sign XML payloads using the XML signature specification"
+icon-url: "https://camel.apache.org/_/img/logo-d-f21b25ba38.svg"
 metadata:
   guide: "https://camel.apache.org/camel-quarkus/latest/reference/extensions/xmlsecurity.html"
   categories:
diff --git a/integration-tests/pom.xml b/integration-tests/pom.xml
index b6ee1a7ca9..c5ce504284 100644
--- a/integration-tests/pom.xml
+++ b/integration-tests/pom.xml
@@ -229,7 +229,7 @@
         <module>weather</module>
         <!--<module>xchange</module> https://github.com/apache/camel-quarkus/issues/4516 -->
         <module>xml</module>
-        <!--<module>xmlsecurity</module>-->
+        <module>xmlsecurity</module>
         <module>xpath</module>
         <!--<module>xstream</module>-->
         <!--<module>zendesk</module> https://github.com/apache/camel-quarkus/issues/4514 -->
diff --git a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityProducers.java b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityProducers.java
index e57daecfe9..720b014b15 100644
--- a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityProducers.java
+++ b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityProducers.java
@@ -27,21 +27,21 @@ import java.util.Map;
 
 import javax.crypto.KeyGenerator;
 import javax.crypto.SecretKey;
+import javax.xml.crypto.AlgorithmMethod;
+import javax.xml.crypto.KeySelector;
+import javax.xml.crypto.KeySelectorResult;
+import javax.xml.crypto.XMLCryptoContext;
+import javax.xml.crypto.dsig.CanonicalizationMethod;
+import javax.xml.crypto.dsig.keyinfo.KeyInfo;
+import javax.xml.crypto.dsig.keyinfo.KeyInfoFactory;
+import javax.xml.crypto.dsig.spec.XPathType;
+
+import org.w3c.dom.Node;
+
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.enterprise.inject.Produces;
 import jakarta.inject.Named;
 import jakarta.inject.Singleton;
-import jakarta.xml.crypto.AlgorithmMethod;
-import jakarta.xml.crypto.KeySelector;
-import jakarta.xml.crypto.KeySelectorResult;
-import jakarta.xml.crypto.XMLCryptoContext;
-import jakarta.xml.crypto.dsig.CanonicalizationMethod;
-import jakarta.xml.crypto.dsig.keyinfo.KeyInfo;
-import jakarta.xml.crypto.dsig.keyinfo.KeyInfoFactory;
-import jakarta.xml.crypto.dsig.spec.XPathType;
-
-import org.w3c.dom.Node;
-
 import org.apache.camel.Message;
 import org.apache.camel.component.xmlsecurity.api.KeyAccessor;
 import org.apache.camel.component.xmlsecurity.api.XmlSignatureHelper;
diff --git a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityResource.java b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityResource.java
index b9b6c8dde0..d045e8d7c8 100644
--- a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityResource.java
+++ b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityResource.java
@@ -22,7 +22,6 @@ import jakarta.ws.rs.POST;
 import jakarta.ws.rs.Path;
 import jakarta.ws.rs.Produces;
 import jakarta.ws.rs.core.MediaType;
-
 import org.apache.camel.ProducerTemplate;
 
 @Path("/xmlsecurity")
diff --git a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityRoutes.java b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityRoutes.java
index 2fc5e7eb0d..e0f39c2a86 100644
--- a/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityRoutes.java
+++ b/integration-tests/xmlsecurity/src/main/java/org/apache/camel/quarkus/component/xmlsecurity/it/XmlsecurityRoutes.java
@@ -20,10 +20,10 @@ import java.util.HashMap;
 import java.util.Map;
 
 import javax.crypto.SecretKey;
+
 import jakarta.enterprise.context.ApplicationScoped;
 import jakarta.inject.Inject;
 import jakarta.inject.Named;
-
 import org.apache.camel.builder.RouteBuilder;
 
 @ApplicationScoped
diff --git a/poms/bom/pom.xml b/poms/bom/pom.xml
index 80d01f8b04..9628c184b8 100644
--- a/poms/bom/pom.xml
+++ b/poms/bom/pom.xml
@@ -2513,11 +2513,11 @@
                 <artifactId>camel-xml-jaxp</artifactId>
                 <version>${camel.version}</version>
             </dependency>
-            <!--<dependency>
+            <dependency>
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-xmlsecurity</artifactId>
                 <version>${camel.version}</version>
-            </dependency>-->
+            </dependency>
             <dependency>
                 <groupId>org.apache.camel</groupId>
                 <artifactId>camel-xmpp</artifactId>
@@ -5723,7 +5723,7 @@
                 <artifactId>camel-quarkus-xml-jaxp-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
             </dependency>
-            <!--<dependency>
+            <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-xmlsecurity</artifactId>
                 <version>${camel-quarkus.version}</version>
@@ -5732,7 +5732,7 @@
                 <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-xmlsecurity-deployment</artifactId>
                 <version>${camel-quarkus.version}</version>
-            </dependency>-->
+            </dependency>
             <dependency>
                 <groupId>org.apache.camel.quarkus</groupId>
                 <artifactId>camel-quarkus-xmpp</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-full-pom.xml b/poms/bom/src/main/generated/flattened-full-pom.xml
index 8f96c42274..4a7476948c 100644
--- a/poms/bom/src/main/generated/flattened-full-pom.xml
+++ b/poms/bom/src/main/generated/flattened-full-pom.xml
@@ -2441,6 +2441,11 @@
         <artifactId>camel-xml-jaxp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.0.0-M2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-xmlsecurity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>4.0.0-M2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-xmpp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -5604,6 +5609,16 @@
         <artifactId>camel-quarkus-xml-jaxp-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-xmlsecurity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-xmlsecurity-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-quarkus-xmpp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/poms/bom/src/main/generated/flattened-reduced-pom.xml b/poms/bom/src/main/generated/flattened-reduced-pom.xml
index 474da7a1af..d28e17838b 100644
--- a/poms/bom/src/main/generated/flattened-reduced-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-pom.xml
@@ -2441,6 +2441,11 @@
         <artifactId>camel-xml-jaxp</artifactId>
         <version>4.0.0-M2</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId>
+        <artifactId>camel-xmlsecurity</artifactId>
+        <version>4.0.0-M2</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId>
         <artifactId>camel-xmpp</artifactId>
@@ -5604,6 +5609,16 @@
         <artifactId>camel-quarkus-xml-jaxp-deployment</artifactId>
         <version>3.0.0-SNAPSHOT</version>
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-xmlsecurity</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId>
+        <artifactId>camel-quarkus-xmlsecurity-deployment</artifactId>
+        <version>3.0.0-SNAPSHOT</version>
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId>
         <artifactId>camel-quarkus-xmpp</artifactId>
diff --git a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
index d2229dd4fd..462a3b4d3c 100644
--- a/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
+++ b/poms/bom/src/main/generated/flattened-reduced-verbose-pom.xml
@@ -2441,6 +2441,11 @@
         <artifactId>camel-xml-jaxp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>4.0.0-M2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-xmlsecurity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>4.0.0-M2</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-xmpp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
@@ -5604,6 +5609,16 @@
         <artifactId>camel-quarkus-xml-jaxp-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
       </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-xmlsecurity</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
+      <dependency>
+        <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <artifactId>camel-quarkus-xmlsecurity-deployment</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+        <version>3.0.0-SNAPSHOT</version><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
+      </dependency>
       <dependency>
         <groupId>org.apache.camel.quarkus</groupId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
         <artifactId>camel-quarkus-xmpp</artifactId><!-- org.apache.camel.quarkus:camel-quarkus-bom:${project.version} -->
diff --git a/tooling/scripts/test-categories.yaml b/tooling/scripts/test-categories.yaml
index c88d221ce4..7ce793083c 100644
--- a/tooling/scripts/test-categories.yaml
+++ b/tooling/scripts/test-categories.yaml
@@ -86,6 +86,7 @@ group-05:
   - jaxb
   - ssh
   - soap
+  - xmlsecurity
   - syslog
 group-06:
   - exec