diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/smooks.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/smooks.json
index 2bf77048a804..315fe986306b 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/smooks.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/components/smooks.json
@@ -35,6 +35,7 @@
"smooksConfig": { "index": 0, "kind": "path", "displayName": "Smooks Config", "group": "producer", "label": "", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "deprecationNote": "", "autowired": false, "secret": false, "supportFileReference": true, "description": "Path to the Smooks configuration file" },
"reportPath": { "index": 1, "kind": "parameter", "displayName": "Report Path", "group": "producer", "label": "", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "File path to place the generated HTML execution report. The report is a useful tool in the developers arsenal for diagnosing issues or comprehending a transformation. Do not set in production since this is a major performance drain" },
"lazyStartProducer": { "index": 2, "kind": "parameter", "displayName": "Lazy Start Producer", "group": "producer (advanced)", "label": "producer,advanced", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing." },
- "allowExecutionContextFromHeader": { "index": 3, "kind": "parameter", "displayName": "Allow Execution Context From Header", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allow execution context to be set from the CamelSmooksExecutionContext header" }
+ "allowExecutionContextFromHeader": { "index": 3, "kind": "parameter", "displayName": "Allow Execution Context From Header", "group": "advanced", "label": "advanced", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Allow execution context to be set from the CamelSmooksExecutionContext header" },
+ "allowExternalEntities": { "index": 4, "kind": "parameter", "displayName": "Allow External Entities", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "boolean", "deprecated": false, "autowired": false, "secret": false, "security": "insecure:dev", "insecureValue": "true", "defaultValue": false, "description": "Whether to allow the XML reader used by Smooks to resolve external XML entities (external general and parameter entities) when parsing XML input. This is disabled by default so that external entities in the message body are not resolved; enable it only for trusted legacy configurations that rely on external entity resolution." }
}
}
diff --git a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dataformats/smooks.json b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dataformats/smooks.json
index 2acc7b782fa2..35c75d226013 100644
--- a/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dataformats/smooks.json
+++ b/catalog/camel-catalog-provider-springboot/src/main/resources/org/apache/camel/springboot/catalog/dataformats/smooks.json
@@ -17,6 +17,7 @@
},
"properties": {
"id": { "index": 0, "kind": "attribute", "displayName": "Id", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "The id of this node" },
- "smooksConfig": { "index": 1, "kind": "attribute", "displayName": "Smooks Config", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Path to the Smooks configuration file." }
+ "smooksConfig": { "index": 1, "kind": "attribute", "displayName": "Smooks Config", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "autowired": false, "secret": false, "description": "Path to the Smooks configuration file." },
+ "allowExternalEntities": { "index": 2, "kind": "attribute", "displayName": "Allow External Entities", "group": "security", "label": "security", "required": false, "type": "boolean", "javaType": "java.lang.Boolean", "deprecated": false, "autowired": false, "secret": false, "defaultValue": false, "description": "Whether to allow the XML reader used by Smooks to resolve external XML entities (external general and parameter entities) when parsing XML input. This is disabled by default so that external entities in the message body are not resolved; enable it only for trusted legacy configurations that rely on external entity resolution." }
}
}
diff --git a/components-starter/camel-smooks-starter/src/main/docs/smooks.json b/components-starter/camel-smooks-starter/src/main/docs/smooks.json
index 68c9a3f7c776..0ab6cc744cff 100644
--- a/components-starter/camel-smooks-starter/src/main/docs/smooks.json
+++ b/components-starter/camel-smooks-starter/src/main/docs/smooks.json
@@ -55,6 +55,13 @@
"description": "To use a custom factory for creating Smooks. The option is a org.smooks.SmooksFactory type.",
"sourceType": "org.apache.camel.component.smooks.springboot.SmooksComponentConfiguration"
},
+ {
+ "name": "camel.dataformat.smooks.allow-external-entities",
+ "type": "java.lang.Boolean",
+ "description": "Whether to allow the XML reader used by Smooks to resolve external XML entities (external general and parameter entities) when parsing XML input. This is disabled by default so that external entities in the message body are not resolved; enable it only for trusted legacy configurations that rely on external entity resolution.",
+ "sourceType": "org.apache.camel.dataformat.smooks.springboot.SmooksDataFormatConfiguration",
+ "defaultValue": false
+ },
{
"name": "camel.dataformat.smooks.customizer.enabled",
"type": "java.lang.Boolean",
diff --git a/components-starter/camel-smooks-starter/src/main/java/org/apache/camel/dataformat/smooks/springboot/SmooksDataFormatConfiguration.java b/components-starter/camel-smooks-starter/src/main/java/org/apache/camel/dataformat/smooks/springboot/SmooksDataFormatConfiguration.java
index de57d7220843..9f125eab7f8d 100644
--- a/components-starter/camel-smooks-starter/src/main/java/org/apache/camel/dataformat/smooks/springboot/SmooksDataFormatConfiguration.java
+++ b/components-starter/camel-smooks-starter/src/main/java/org/apache/camel/dataformat/smooks/springboot/SmooksDataFormatConfiguration.java
@@ -39,6 +39,14 @@ public class SmooksDataFormatConfiguration
* Path to the Smooks configuration file.
*/
private String smooksConfig;
+ /**
+ * Whether to allow the XML reader used by Smooks to resolve external XML
+ * entities (external general and parameter entities) when parsing XML
+ * input. This is disabled by default so that external entities in the
+ * message body are not resolved; enable it only for trusted legacy
+ * configurations that rely on external entity resolution.
+ */
+ private Boolean allowExternalEntities = false;
public String getSmooksConfig() {
return smooksConfig;
@@ -47,4 +55,12 @@ public String getSmooksConfig() {
public void setSmooksConfig(String smooksConfig) {
this.smooksConfig = smooksConfig;
}
+
+ public Boolean getAllowExternalEntities() {
+ return allowExternalEntities;
+ }
+
+ public void setAllowExternalEntities(Boolean allowExternalEntities) {
+ this.allowExternalEntities = allowExternalEntities;
+ }
}
\ No newline at end of file
diff --git a/docs/spring-boot/modules/ROOT/pages/starters/smooks.adoc b/docs/spring-boot/modules/ROOT/pages/starters/smooks.adoc
index 4d27c186830b..6a6ee040a368 100644
--- a/docs/spring-boot/modules/ROOT/pages/starters/smooks.adoc
+++ b/docs/spring-boot/modules/ROOT/pages/starters/smooks.adoc
@@ -24,7 +24,7 @@ Please refer to the above links for usage and configuration details.
== Spring Boot Auto-Configuration
-The starter supports 6 options, which are listed below.
+The starter supports 7 options, which are listed below.
[width="100%",cols="2,5,^1,2",options="header"]
|===
@@ -33,6 +33,7 @@ The starter supports 6 options, which are listed below.
| camel.component.smooks.enabled | Whether to enable auto configuration of the smooks component. This is enabled by default. | | Boolean
| camel.component.smooks.lazy-start-producer | Whether the producer should be started lazy (on the first message). By starting lazy you can use this to allow CamelContext and routes to startup in situations where a producer may otherwise fail during starting and cause the route to fail being started. By deferring this startup to be lazy then the startup failure can be handled during routing messages via Camel's routing error handlers. Beware that when the first message is processed then creating and starting the producer may take a little time and prolong the total processing time of the processing. | false | Boolean
| camel.component.smooks.smooks-factory | To use a custom factory for creating Smooks. The option is a org.smooks.SmooksFactory type. | | SmooksFactory
+| camel.dataformat.smooks.allow-external-entities | Whether to allow the XML reader used by Smooks to resolve external XML entities (external general and parameter entities) when parsing XML input. This is disabled by default so that external entities in the message body are not resolved; enable it only for trusted legacy configurations that rely on external entity resolution. | false | Boolean
| camel.dataformat.smooks.enabled | Whether to enable auto configuration of the smooks data format. This is enabled by default. | | Boolean
| camel.dataformat.smooks.smooks-config | Path to the Smooks configuration file. | | String
|===
diff --git a/tooling/camel-spring-boot-dependencies/pom.xml b/tooling/camel-spring-boot-dependencies/pom.xml
index 419bfe59c886..a1fd3f1246bc 100644
--- a/tooling/camel-spring-boot-dependencies/pom.xml
+++ b/tooling/camel-spring-boot-dependencies/pom.xml
@@ -114,152 +114,152 @@
io.grpc
grpc-all
- 1.83.1
+ 1.84.0
io.grpc
grpc-alts
- 1.83.1
+ 1.84.0
io.grpc
grpc-api
- 1.83.1
+ 1.84.0
io.grpc
grpc-auth
- 1.83.1
+ 1.84.0
io.grpc
grpc-benchmarks
- 1.83.1
+ 1.84.0
io.grpc
grpc-census
- 1.83.1
+ 1.84.0
io.grpc
grpc-context
- 1.83.1
+ 1.84.0
io.grpc
grpc-core
- 1.83.1
+ 1.84.0
io.grpc
grpc-gcp-csm-observability
- 1.83.1
+ 1.84.0
io.grpc
grpc-gcp-observability
- 1.83.1
+ 1.84.0
io.grpc
grpc-googleapis
- 1.83.1
+ 1.84.0
io.grpc
grpc-grpclb
- 1.83.1
+ 1.84.0
io.grpc
grpc-inprocess
- 1.83.1
+ 1.84.0
io.grpc
grpc-interop-testing
- 1.83.1
+ 1.84.0
io.grpc
grpc-netty
- 1.83.1
+ 1.84.0
io.grpc
grpc-netty-shaded
- 1.83.1
+ 1.84.0
io.grpc
grpc-okhttp
- 1.83.1
+ 1.84.0
io.grpc
grpc-opentelemetry
- 1.83.1
+ 1.84.0
io.grpc
grpc-protobuf
- 1.83.1
+ 1.84.0
io.grpc
grpc-protobuf-lite
- 1.83.1
+ 1.84.0
io.grpc
grpc-rls
- 1.83.1
+ 1.84.0
io.grpc
grpc-services
- 1.83.1
+ 1.84.0
io.grpc
grpc-servlet
- 1.83.1
+ 1.84.0
io.grpc
grpc-servlet-jakarta
- 1.83.1
+ 1.84.0
io.grpc
grpc-stub
- 1.83.1
+ 1.84.0
io.grpc
grpc-testing
- 1.83.1
+ 1.84.0
io.grpc
grpc-testing-proto
- 1.83.1
+ 1.84.0
io.grpc
grpc-util
- 1.83.1
+ 1.84.0
io.grpc
grpc-xds
- 1.83.1
+ 1.84.0
io.grpc
protoc-gen-grpc-java
- 1.83.1
+ 1.84.0
pom