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

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


The following commit(s) were added to refs/heads/main by this push:
     new 5eabbb78b233 CAMEL-23743: Add hostnameVerificationPolicy option to 
HttpComponent/HttpEndpoint (#23987)
5eabbb78b233 is described below

commit 5eabbb78b233aa5de9bb3f01545f1d7898ffe425
Author: Rajkumar Pamu <[email protected]>
AuthorDate: Fri Jun 12 21:48:45 2026 +0530

    CAMEL-23743: Add hostnameVerificationPolicy option to 
HttpComponent/HttpEndpoint (#23987)
    
    * CAMEL-23743: Add hostnameVerificationPolicy option to 
HttpComponent/HttpEndpoint
    
    * CAMEL-23743: Add upgrade guide entry for hostnameVerificationPolicy option
    
    * CAMEL-23743: Add missing generated DSL and catalog files for 
hostnameVerificationPolicy
    
    * CAMEL-23743: Regenerate DSL files for hostnameVerificationPolicy
---
 .../org/apache/camel/catalog/components/http.json  |  38 +++---
 .../org/apache/camel/catalog/components/https.json |  38 +++---
 .../component/http/HttpComponentConfigurer.java    |   6 +
 .../component/http/HttpEndpointConfigurer.java     |   6 +
 .../component/http/HttpEndpointUriFactory.java     |   3 +-
 .../org/apache/camel/component/http/http.json      |  38 +++---
 .../org/apache/camel/component/http/https.json     |  38 +++---
 .../apache/camel/component/http/HttpComponent.java |  36 ++++--
 .../apache/camel/component/http/HttpEndpoint.java  |  23 ++++
 .../http/HttpsHostnameVerificationPolicyTest.java  | 127 +++++++++++++++++++++
 .../ROOT/pages/camel-4x-upgrade-guide-4_21.adoc    |  11 ++
 .../component/dsl/HttpComponentBuilderFactory.java |  27 +++++
 .../dsl/HttpsComponentBuilderFactory.java          |  27 +++++
 .../endpoint/dsl/HttpEndpointBuilderFactory.java   |  48 ++++++++
 14 files changed, 386 insertions(+), 80 deletions(-)

diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
index 6b5caa3b9291..6f79c72d50ff 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/http.json
@@ -69,13 +69,14 @@
     "proxyAuthUsername": { "index": 39, "kind": "property", "displayName": 
"Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": "Proxy 
server username" },
     "proxyHost": { "index": 40, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server host" },
     "proxyPort": { "index": 41, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server port" },
-    "sslContextParameters": { "index": 42, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
-    "useGlobalSslContextParameters": { "index": 43, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
-    "x509HostnameVerifier": { "index": 44, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
-    "connectionRequestTimeout": { "index": 45, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
-    "connectTimeout": { "index": 46, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
-    "responseTimeout": { "index": 47, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
-    "soTimeout": { "index": 48, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
+    "hostnameVerificationPolicy": { "index": 42, "kind": "property", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (def [...]
+    "sslContextParameters": { "index": 43, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
+    "useGlobalSslContextParameters": { "index": 44, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
+    "x509HostnameVerifier": { "index": 45, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
+    "connectionRequestTimeout": { "index": 46, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
+    "connectTimeout": { "index": 47, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
+    "responseTimeout": { "index": 48, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
+    "soTimeout": { "index": 49, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
   },
   "headers": {
     "Content-Encoding": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The HTTP content encoding. Is set on both the IN and OUT 
message to provide a content encoding, such as gzip.", "constantName": 
"org.apache.camel.component.http.HttpConstants#CONTENT_ENCODING" },
@@ -150,16 +151,17 @@
     "authMethod": { "index": 53, "kind": "parameter", "displayName": "Auth 
Method", "group": "security", "label": "producer,security", "required": false, 
"type": "enum", "javaType": "java.lang.String", "enum": [ "Basic", "Bearer", 
"NTLM" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Authentication methods allowed to use as a comma separated list 
of values Basic, Bearer, or NTLM. (NTLM is deprecated)" },
     "authPassword": { "index": 54, "kind": "parameter", "displayName": "Auth 
Password", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication password" },
     "authUsername": { "index": 55, "kind": "parameter", "displayName": "Auth 
Username", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication username" },
-    "oauth2BodyAuthentication": { "index": 56, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
-    "oauth2CachedTokensDefaultExpirySeconds": { "index": 57, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
-    "oauth2CachedTokensExpirationMarginSeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
-    "oauth2CacheTokens": { "index": 59, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
-    "oauth2ClientId": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
-    "oauth2ClientSecret": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
-    "oauth2ResourceIndicator": { "index": 62, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
-    "oauth2Scope": { "index": 63, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
-    "oauth2TokenEndpoint": { "index": 64, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
-    "sslContextParameters": { "index": 65, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
-    "x509HostnameVerifier": { "index": 66, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
+    "hostnameVerificationPolicy": { "index": 56, "kind": "parameter", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (de [...]
+    "oauth2BodyAuthentication": { "index": 57, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
+    "oauth2CachedTokensDefaultExpirySeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
+    "oauth2CachedTokensExpirationMarginSeconds": { "index": 59, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
+    "oauth2CacheTokens": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
+    "oauth2ClientId": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
+    "oauth2ClientSecret": { "index": 62, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
+    "oauth2ResourceIndicator": { "index": 63, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
+    "oauth2Scope": { "index": 64, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
+    "oauth2TokenEndpoint": { "index": 65, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
+    "sslContextParameters": { "index": 66, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
+    "x509HostnameVerifier": { "index": 67, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
   }
 }
diff --git 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
index e3ec05d138ea..aefe733ab04a 100644
--- 
a/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
+++ 
b/catalog/camel-catalog/src/generated/resources/org/apache/camel/catalog/components/https.json
@@ -69,13 +69,14 @@
     "proxyAuthUsername": { "index": 39, "kind": "property", "displayName": 
"Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": "Proxy 
server username" },
     "proxyHost": { "index": 40, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server host" },
     "proxyPort": { "index": 41, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server port" },
-    "sslContextParameters": { "index": 42, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
-    "useGlobalSslContextParameters": { "index": 43, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
-    "x509HostnameVerifier": { "index": 44, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
-    "connectionRequestTimeout": { "index": 45, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
-    "connectTimeout": { "index": 46, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
-    "responseTimeout": { "index": 47, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
-    "soTimeout": { "index": 48, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
+    "hostnameVerificationPolicy": { "index": 42, "kind": "property", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (def [...]
+    "sslContextParameters": { "index": 43, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
+    "useGlobalSslContextParameters": { "index": 44, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
+    "x509HostnameVerifier": { "index": 45, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
+    "connectionRequestTimeout": { "index": 46, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
+    "connectTimeout": { "index": 47, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
+    "responseTimeout": { "index": 48, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
+    "soTimeout": { "index": 49, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
   },
   "headers": {
     "Content-Encoding": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The HTTP content encoding. Is set on both the IN and OUT 
message to provide a content encoding, such as gzip.", "constantName": 
"org.apache.camel.component.http.HttpConstants#CONTENT_ENCODING" },
@@ -150,16 +151,17 @@
     "authMethod": { "index": 53, "kind": "parameter", "displayName": "Auth 
Method", "group": "security", "label": "producer,security", "required": false, 
"type": "enum", "javaType": "java.lang.String", "enum": [ "Basic", "Bearer", 
"NTLM" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Authentication methods allowed to use as a comma separated list 
of values Basic, Bearer, or NTLM. (NTLM is deprecated)" },
     "authPassword": { "index": 54, "kind": "parameter", "displayName": "Auth 
Password", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication password" },
     "authUsername": { "index": 55, "kind": "parameter", "displayName": "Auth 
Username", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication username" },
-    "oauth2BodyAuthentication": { "index": 56, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
-    "oauth2CachedTokensDefaultExpirySeconds": { "index": 57, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
-    "oauth2CachedTokensExpirationMarginSeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
-    "oauth2CacheTokens": { "index": 59, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
-    "oauth2ClientId": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
-    "oauth2ClientSecret": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
-    "oauth2ResourceIndicator": { "index": 62, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
-    "oauth2Scope": { "index": 63, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
-    "oauth2TokenEndpoint": { "index": 64, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
-    "sslContextParameters": { "index": 65, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
-    "x509HostnameVerifier": { "index": 66, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
+    "hostnameVerificationPolicy": { "index": 56, "kind": "parameter", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (de [...]
+    "oauth2BodyAuthentication": { "index": 57, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
+    "oauth2CachedTokensDefaultExpirySeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
+    "oauth2CachedTokensExpirationMarginSeconds": { "index": 59, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
+    "oauth2CacheTokens": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
+    "oauth2ClientId": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
+    "oauth2ClientSecret": { "index": 62, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
+    "oauth2ResourceIndicator": { "index": 63, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
+    "oauth2Scope": { "index": 64, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
+    "oauth2TokenEndpoint": { "index": 65, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
+    "sslContextParameters": { "index": 66, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
+    "x509HostnameVerifier": { "index": 67, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
   }
 }
diff --git 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpComponentConfigurer.java
 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpComponentConfigurer.java
index 8ea9f56250c9..d67699d04c76 100644
--- 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpComponentConfigurer.java
+++ 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpComponentConfigurer.java
@@ -59,6 +59,8 @@ public class HttpComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "followRedirects": 
target.setFollowRedirects(property(camelContext, boolean.class, value)); return 
true;
         case "headerfilterstrategy":
         case "headerFilterStrategy": 
target.setHeaderFilterStrategy(property(camelContext, 
org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": 
target.setHostnameVerificationPolicy(property(camelContext, 
org.apache.hc.client5.http.ssl.HostnameVerificationPolicy.class, value)); 
return true;
         case "httpactivitylistener":
         case "httpActivityListener": 
target.setHttpActivityListener(property(camelContext, 
org.apache.camel.component.http.HttpActivityListener.class, value)); return 
true;
         case "httpbinding":
@@ -169,6 +171,8 @@ public class HttpComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "followRedirects": return boolean.class;
         case "headerfilterstrategy":
         case "headerFilterStrategy": return 
org.apache.camel.spi.HeaderFilterStrategy.class;
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": return 
org.apache.hc.client5.http.ssl.HostnameVerificationPolicy.class;
         case "httpactivitylistener":
         case "httpActivityListener": return 
org.apache.camel.component.http.HttpActivityListener.class;
         case "httpbinding":
@@ -275,6 +279,8 @@ public class HttpComponentConfigurer extends 
PropertyConfigurerSupport implement
         case "followRedirects": return target.isFollowRedirects();
         case "headerfilterstrategy":
         case "headerFilterStrategy": return target.getHeaderFilterStrategy();
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": return 
target.getHostnameVerificationPolicy();
         case "httpactivitylistener":
         case "httpActivityListener": return target.getHttpActivityListener();
         case "httpbinding":
diff --git 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java
 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java
index f80127c209dc..a3e047010724 100644
--- 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java
+++ 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointConfigurer.java
@@ -69,6 +69,8 @@ public class HttpEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "getWithBody": target.setGetWithBody(property(camelContext, 
boolean.class, value)); return true;
         case "headerfilterstrategy":
         case "headerFilterStrategy": 
target.setHeaderFilterStrategy(property(camelContext, 
org.apache.camel.spi.HeaderFilterStrategy.class, value)); return true;
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": 
target.setHostnameVerificationPolicy(property(camelContext, 
org.apache.hc.client5.http.ssl.HostnameVerificationPolicy.class, value)); 
return true;
         case "httpactivitylistener":
         case "httpActivityListener": 
target.setHttpActivityListener(property(camelContext, 
org.apache.camel.component.http.HttpActivityListener.class, value)); return 
true;
         case "httpclient":
@@ -208,6 +210,8 @@ public class HttpEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "getWithBody": return boolean.class;
         case "headerfilterstrategy":
         case "headerFilterStrategy": return 
org.apache.camel.spi.HeaderFilterStrategy.class;
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": return 
org.apache.hc.client5.http.ssl.HostnameVerificationPolicy.class;
         case "httpactivitylistener":
         case "httpActivityListener": return 
org.apache.camel.component.http.HttpActivityListener.class;
         case "httpclient":
@@ -348,6 +352,8 @@ public class HttpEndpointConfigurer extends 
PropertyConfigurerSupport implements
         case "getWithBody": return target.isGetWithBody();
         case "headerfilterstrategy":
         case "headerFilterStrategy": return target.getHeaderFilterStrategy();
+        case "hostnameverificationpolicy":
+        case "hostnameVerificationPolicy": return 
target.getHostnameVerificationPolicy();
         case "httpactivitylistener":
         case "httpActivityListener": return target.getHttpActivityListener();
         case "httpclient":
diff --git 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java
 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java
index f6a0f23d4830..7116723c7b1f 100644
--- 
a/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java
+++ 
b/components/camel-http/src/generated/java/org/apache/camel/component/http/HttpEndpointUriFactory.java
@@ -25,7 +25,7 @@ public class HttpEndpointUriFactory extends 
org.apache.camel.support.component.E
     private static final Set<String> ENDPOINT_IDENTITY_PROPERTY_NAMES;
     private static final Map<String, String> MULTI_VALUE_PREFIXES;
     static {
-        Set<String> props = new HashSet<>(67);
+        Set<String> props = new HashSet<>(68);
         props.add("authBearerToken");
         props.add("authDomain");
         props.add("authHost");
@@ -49,6 +49,7 @@ public class HttpEndpointUriFactory extends 
org.apache.camel.support.component.E
         props.add("followRedirects");
         props.add("getWithBody");
         props.add("headerFilterStrategy");
+        props.add("hostnameVerificationPolicy");
         props.add("httpActivityListener");
         props.add("httpClient");
         props.add("httpClientConfigurer");
diff --git 
a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
 
b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
index 6b5caa3b9291..6f79c72d50ff 100644
--- 
a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
+++ 
b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/http.json
@@ -69,13 +69,14 @@
     "proxyAuthUsername": { "index": 39, "kind": "property", "displayName": 
"Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": "Proxy 
server username" },
     "proxyHost": { "index": 40, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server host" },
     "proxyPort": { "index": 41, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server port" },
-    "sslContextParameters": { "index": 42, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
-    "useGlobalSslContextParameters": { "index": 43, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
-    "x509HostnameVerifier": { "index": 44, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
-    "connectionRequestTimeout": { "index": 45, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
-    "connectTimeout": { "index": 46, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
-    "responseTimeout": { "index": 47, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
-    "soTimeout": { "index": 48, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
+    "hostnameVerificationPolicy": { "index": 42, "kind": "property", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (def [...]
+    "sslContextParameters": { "index": 43, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
+    "useGlobalSslContextParameters": { "index": 44, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
+    "x509HostnameVerifier": { "index": 45, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
+    "connectionRequestTimeout": { "index": 46, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
+    "connectTimeout": { "index": 47, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
+    "responseTimeout": { "index": 48, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
+    "soTimeout": { "index": 49, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
   },
   "headers": {
     "Content-Encoding": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The HTTP content encoding. Is set on both the IN and OUT 
message to provide a content encoding, such as gzip.", "constantName": 
"org.apache.camel.component.http.HttpConstants#CONTENT_ENCODING" },
@@ -150,16 +151,17 @@
     "authMethod": { "index": 53, "kind": "parameter", "displayName": "Auth 
Method", "group": "security", "label": "producer,security", "required": false, 
"type": "enum", "javaType": "java.lang.String", "enum": [ "Basic", "Bearer", 
"NTLM" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Authentication methods allowed to use as a comma separated list 
of values Basic, Bearer, or NTLM. (NTLM is deprecated)" },
     "authPassword": { "index": 54, "kind": "parameter", "displayName": "Auth 
Password", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication password" },
     "authUsername": { "index": 55, "kind": "parameter", "displayName": "Auth 
Username", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication username" },
-    "oauth2BodyAuthentication": { "index": 56, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
-    "oauth2CachedTokensDefaultExpirySeconds": { "index": 57, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
-    "oauth2CachedTokensExpirationMarginSeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
-    "oauth2CacheTokens": { "index": 59, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
-    "oauth2ClientId": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
-    "oauth2ClientSecret": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
-    "oauth2ResourceIndicator": { "index": 62, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
-    "oauth2Scope": { "index": 63, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
-    "oauth2TokenEndpoint": { "index": 64, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
-    "sslContextParameters": { "index": 65, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
-    "x509HostnameVerifier": { "index": 66, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
+    "hostnameVerificationPolicy": { "index": 56, "kind": "parameter", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (de [...]
+    "oauth2BodyAuthentication": { "index": 57, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
+    "oauth2CachedTokensDefaultExpirySeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
+    "oauth2CachedTokensExpirationMarginSeconds": { "index": 59, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
+    "oauth2CacheTokens": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
+    "oauth2ClientId": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
+    "oauth2ClientSecret": { "index": 62, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
+    "oauth2ResourceIndicator": { "index": 63, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
+    "oauth2Scope": { "index": 64, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
+    "oauth2TokenEndpoint": { "index": 65, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
+    "sslContextParameters": { "index": 66, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
+    "x509HostnameVerifier": { "index": 67, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
   }
 }
diff --git 
a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
 
b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
index e3ec05d138ea..aefe733ab04a 100644
--- 
a/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
+++ 
b/components/camel-http/src/generated/resources/META-INF/org/apache/camel/component/http/https.json
@@ -69,13 +69,14 @@
     "proxyAuthUsername": { "index": 39, "kind": "property", "displayName": 
"Proxy Auth Username", "group": "proxy", "label": "producer,proxy", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": "Proxy 
server username" },
     "proxyHost": { "index": 40, "kind": "property", "displayName": "Proxy 
Host", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server host" },
     "proxyPort": { "index": 41, "kind": "property", "displayName": "Proxy 
Port", "group": "proxy", "label": "producer,proxy", "required": false, "type": 
"integer", "javaType": "java.lang.Integer", "deprecated": false, "autowired": 
false, "secret": false, "description": "Proxy server port" },
-    "sslContextParameters": { "index": 42, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
-    "useGlobalSslContextParameters": { "index": 43, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
-    "x509HostnameVerifier": { "index": 44, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
-    "connectionRequestTimeout": { "index": 45, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
-    "connectTimeout": { "index": 46, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
-    "responseTimeout": { "index": 47, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
-    "soTimeout": { "index": 48, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
+    "hostnameVerificationPolicy": { "index": 42, "kind": "property", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (def [...]
+    "sslContextParameters": { "index": 43, "kind": "property", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.support.jsse.SSLContextParameters is supported per 
HttpComponent. If y [...]
+    "useGlobalSslContextParameters": { "index": 44, "kind": "property", 
"displayName": "Use Global Ssl Context Parameters", "group": "security", 
"label": "security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Enable usage of global SSL context 
parameters." },
+    "x509HostnameVerifier": { "index": 45, "kind": "property", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier." },
+    "connectionRequestTimeout": { "index": 46, "kind": "property", 
"displayName": "Connection Request Timeout", "group": "timeout", "label": 
"timeout", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "autowired": false, "secret": false, "defaultValue": 
180000, "description": "Returns the connection lease request timeout (in 
millis) used when requesting a connection from the connection manager. A 
timeout value of zero is interpreted as a disabled timeout." },
+    "connectTimeout": { "index": 47, "kind": "property", "displayName": 
"Connect Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the timeout 
(in millis) until a new connection is fully established. A timeout value of 
zero is interpreted as an infinite timeout." },
+    "responseTimeout": { "index": 48, "kind": "property", "displayName": 
"Response Timeout", "group": "timeout", "label": "timeout", "required": false, 
"type": "integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "description": "Determines the timeout (in millis) until 
arrival of a response from the opposite endpoint. A timeout value of zero is 
interpreted as an infinite timeout. Please note that response timeout may be 
unsupported by HTTP transports w [...]
+    "soTimeout": { "index": 49, "kind": "property", "displayName": "So 
Timeout", "group": "timeout", "label": "timeout", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 180000, "description": "Determines the default 
socket timeout (in millis) value for blocking I\/O operations." }
   },
   "headers": {
     "Content-Encoding": { "index": 0, "kind": "header", "displayName": "", 
"group": "producer", "label": "", "required": false, "javaType": "String", 
"deprecated": false, "deprecationNote": "", "autowired": false, "secret": 
false, "description": "The HTTP content encoding. Is set on both the IN and OUT 
message to provide a content encoding, such as gzip.", "constantName": 
"org.apache.camel.component.http.HttpConstants#CONTENT_ENCODING" },
@@ -150,16 +151,17 @@
     "authMethod": { "index": 53, "kind": "parameter", "displayName": "Auth 
Method", "group": "security", "label": "producer,security", "required": false, 
"type": "enum", "javaType": "java.lang.String", "enum": [ "Basic", "Bearer", 
"NTLM" ], "deprecated": false, "autowired": false, "secret": false, 
"description": "Authentication methods allowed to use as a comma separated list 
of values Basic, Bearer, or NTLM. (NTLM is deprecated)" },
     "authPassword": { "index": 54, "kind": "parameter", "displayName": "Auth 
Password", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication password" },
     "authUsername": { "index": 55, "kind": "parameter", "displayName": "Auth 
Username", "group": "security", "label": "producer,security", "required": 
false, "type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": true, "security": "secret", "description": 
"Authentication username" },
-    "oauth2BodyAuthentication": { "index": 56, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
-    "oauth2CachedTokensDefaultExpirySeconds": { "index": 57, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
-    "oauth2CachedTokensExpirationMarginSeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
-    "oauth2CacheTokens": { "index": 59, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
-    "oauth2ClientId": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
-    "oauth2ClientSecret": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
-    "oauth2ResourceIndicator": { "index": 62, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
-    "oauth2Scope": { "index": 63, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
-    "oauth2TokenEndpoint": { "index": 64, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
-    "sslContextParameters": { "index": 65, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
-    "x509HostnameVerifier": { "index": 66, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
+    "hostnameVerificationPolicy": { "index": 56, "kind": "parameter", 
"displayName": "Hostname Verification Policy", "group": "security", "label": 
"security", "required": false, "type": "enum", "javaType": 
"org.apache.hc.client5.http.ssl.HostnameVerificationPolicy", "enum": [ 
"CLIENT", "BUILTIN", "BOTH" ], "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": "CLIENT", "description": "Controls how 
hostname verification is performed during the TLS handshake. CLIENT (de [...]
+    "oauth2BodyAuthentication": { "index": 57, "kind": "parameter", 
"displayName": "Oauth2 Body Authentication", "group": "security", "label": 
"producer,security", "required": false, "type": "boolean", "javaType": 
"boolean", "deprecated": false, "autowired": false, "secret": false, 
"defaultValue": false, "description": "Whether to use OAuth2 body 
authentication." },
+    "oauth2CachedTokensDefaultExpirySeconds": { "index": 58, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Default Expiry Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 3600, "description": "Default expiration time 
for cached OAuth2 tokens, in seconds. Used if token response does not contain 
'expires_in' field." },
+    "oauth2CachedTokensExpirationMarginSeconds": { "index": 59, "kind": 
"parameter", "displayName": "Oauth2 Cached Tokens Expiration Margin Seconds", 
"group": "security", "label": "producer,security", "required": false, "type": 
"integer", "javaType": "long", "deprecated": false, "autowired": false, 
"secret": false, "defaultValue": 5, "description": "Amount of time which is 
deducted from OAuth2 tokens expiry time to compensate for the time it takes 
OAuth2 Token Endpoint to send the token  [...]
+    "oauth2CacheTokens": { "index": 60, "kind": "parameter", "displayName": 
"Oauth2 Cache Tokens", "group": "security", "label": "producer,security", 
"required": false, "type": "boolean", "javaType": "boolean", "deprecated": 
false, "autowired": false, "secret": false, "defaultValue": false, 
"description": "Whether to cache OAuth2 client tokens." },
+    "oauth2ClientId": { "index": 61, "kind": "parameter", "displayName": 
"Oauth2 Client Id", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client id" },
+    "oauth2ClientSecret": { "index": 62, "kind": "parameter", "displayName": 
"Oauth2 Client Secret", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": true, "security": "secret", 
"description": "OAuth2 client secret" },
+    "oauth2ResourceIndicator": { "index": 63, "kind": "parameter", 
"displayName": "Oauth2 Resource Indicator", "group": "security", "label": 
"producer,security", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "autowired": false, "secret": false, 
"description": "OAuth2 Token endpoint" },
+    "oauth2Scope": { "index": 64, "kind": "parameter", "displayName": "Oauth2 
Scope", "group": "security", "label": "producer,security", "required": false, 
"type": "string", "javaType": "java.lang.String", "deprecated": false, 
"autowired": false, "secret": false, "description": "OAuth2 scope" },
+    "oauth2TokenEndpoint": { "index": 65, "kind": "parameter", "displayName": 
"Oauth2 Token Endpoint", "group": "security", "label": "producer,security", 
"required": false, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "autowired": false, "secret": false, "description": 
"OAuth2 Resource Indicator" },
+    "sslContextParameters": { "index": 66, "kind": "parameter", "displayName": 
"Ssl Context Parameters", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": 
"org.apache.camel.support.jsse.SSLContextParameters", "deprecated": false, 
"autowired": false, "secret": false, "description": "To configure security 
using SSLContextParameters. Important: Only one instance of 
org.apache.camel.util.jsse.SSLContextParameters is supported per HttpComponent. 
If you [...]
+    "x509HostnameVerifier": { "index": 67, "kind": "parameter", "displayName": 
"X509 Hostname Verifier", "group": "security", "label": "security", "required": 
false, "type": "object", "javaType": "javax.net.ssl.HostnameVerifier", 
"deprecated": false, "autowired": false, "secret": false, "description": "To 
use a custom X509HostnameVerifier such as DefaultHostnameVerifier or 
NoopHostnameVerifier" }
   }
 }
diff --git 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
index fdaba0e6828c..d7706108022e 100644
--- 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
+++ 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
@@ -101,6 +101,15 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
     @Metadata(label = "security",
               description = "To use a custom X509HostnameVerifier such as 
DefaultHostnameVerifier or NoopHostnameVerifier.")
     protected HostnameVerifier x509HostnameVerifier = new 
DefaultHostnameVerifier();
+    @Metadata(label = "security", defaultValue = "CLIENT", enums = 
"CLIENT,BUILTIN,BOTH",
+              description = "Controls how hostname verification is performed 
during the TLS handshake."
+                            + " CLIENT (default) delegates entirely to the 
configured x509HostnameVerifier, preserving the"
+                            + " behaviour of httpclient 5.5 and earlier — a 
NoopHostnameVerifier will disable verification."
+                            + " BUILTIN uses the JDK SSLParameters hostname 
check only, ignoring the configured verifier."
+                            + " BOTH runs the JDK built-in check first and 
then the configured verifier; a NoopHostnameVerifier"
+                            + " cannot bypass the built-in check under BUILTIN 
or BOTH."
+                            + " Prefer BOTH when no custom verifier semantics 
are needed for stronger out-of-the-box security.")
+    protected HostnameVerificationPolicy hostnameVerificationPolicy = 
HostnameVerificationPolicy.CLIENT;
     @Metadata(label = "advanced", defaultValue = "false",
               description = "To use System Properties as fallback for 
configuration for configuring HTTP Client")
     private boolean useSystemProperties;
@@ -539,13 +548,17 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
         final HostnameVerifier resolvedHostnameVerifier
                 = resolveAndRemoveReferenceParameter(parameters, 
"x509HostnameVerifier", HostnameVerifier.class);
         final HostnameVerifier hostnameVerifier = 
Optional.ofNullable(resolvedHostnameVerifier).orElse(x509HostnameVerifier);
+        final HostnameVerificationPolicy resolvedPolicy
+                = getAndRemoveParameter(parameters, 
"hostnameVerificationPolicy", HostnameVerificationPolicy.class,
+                        hostnameVerificationPolicy);
 
         // need to check the parameters of maxTotalConnections and 
connectionsPerRoute
         final int maxTotalConnections = getAndRemoveParameter(parameters, 
"maxTotalConnections", int.class, 0);
         final int connectionsPerRoute = getAndRemoveParameter(parameters, 
"connectionsPerRoute", int.class, 0);
         // do not remove as we set this later again
         final boolean sysProp = getParameter(parameters, 
"useSystemProperties", boolean.class, useSystemProperties);
-        final TlsSocketStrategy tlsStrategy = 
createTlsStrategy(hostnameVerifier, sslContextParameters, sysProp);
+        final TlsSocketStrategy tlsStrategy
+                = createTlsStrategy(hostnameVerifier, resolvedPolicy, 
sslContextParameters, sysProp);
 
         // allow the builder pattern
         
httpConnectionOptions.putAll(PropertiesHelper.extractProperties(parameters, 
"httpConnection."));
@@ -603,20 +616,16 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
     }
 
     protected TlsSocketStrategy createTlsStrategy(
-            HostnameVerifier x509HostnameVerifier,
+            HostnameVerifier x509HostnameVerifier, HostnameVerificationPolicy 
hostnameVerificationPolicy,
             SSLContextParameters sslContextParams, boolean useSystemProperties)
             throws GeneralSecurityException, IOException {
         SSLContext sslContext = sslContextParams != null
                 ? sslContextParams.createSSLContext(getCamelContext())
                 : (useSystemProperties ? SSLContexts.createSystemDefault() : 
SSLContexts.createDefault());
-        // httpclient 5.6 changed DefaultClientTlsStrategy to use BOTH policy 
by default,
-        // which enables the JDK built-in hostname check via SSLParameters in 
addition to the
-        // custom verifier. Use CLIENT so only the configured verifier decides 
— this restores
-        // the 5.5.2 behavior where NoopHostnameVerifier actually disables 
verification.
         return ClientTlsStrategyBuilder.create()
                 .setSslContext(sslContext)
                 .setHostnameVerifier(x509HostnameVerifier)
-                .setHostVerificationPolicy(HostnameVerificationPolicy.CLIENT)
+                .setHostVerificationPolicy(hostnameVerificationPolicy)
                 .buildClassic();
     }
 
@@ -793,6 +802,19 @@ public class HttpComponent extends HttpCommonComponent 
implements RestProducerFa
         this.x509HostnameVerifier = x509HostnameVerifier;
     }
 
+    public HostnameVerificationPolicy getHostnameVerificationPolicy() {
+        return hostnameVerificationPolicy;
+    }
+
+    /**
+     * Controls how hostname verification is performed during the TLS 
handshake. CLIENT (default) delegates entirely to
+     * the configured x509HostnameVerifier. BUILTIN uses only the JDK 
SSLParameters check. BOTH runs both; a
+     * NoopHostnameVerifier cannot bypass the built-in check under BUILTIN or 
BOTH.
+     */
+    public void setHostnameVerificationPolicy(HostnameVerificationPolicy 
hostnameVerificationPolicy) {
+        this.hostnameVerificationPolicy = hostnameVerificationPolicy;
+    }
+
     public boolean isUseSystemProperties() {
         return useSystemProperties;
     }
diff --git 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
index 2dfe94efe325..619f9305b4aa 100644
--- 
a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
+++ 
b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
@@ -51,6 +51,7 @@ import org.apache.hc.client5.http.cookie.CookieStore;
 import org.apache.hc.client5.http.impl.DefaultRedirectStrategy;
 import org.apache.hc.client5.http.impl.classic.HttpClientBuilder;
 import org.apache.hc.client5.http.io.HttpClientConnectionManager;
+import org.apache.hc.client5.http.ssl.HostnameVerificationPolicy;
 import org.apache.hc.core5.http.EntityDetails;
 import org.apache.hc.core5.http.HttpEntity;
 import org.apache.hc.core5.http.HttpException;
@@ -153,6 +154,15 @@ public class HttpEndpoint extends HttpCommonEndpoint 
implements LineNumberAware
     @UriParam(label = "security",
               description = "To use a custom X509HostnameVerifier such as 
DefaultHostnameVerifier or NoopHostnameVerifier")
     private HostnameVerifier x509HostnameVerifier;
+    @UriParam(label = "security", defaultValue = "CLIENT", enums = 
"CLIENT,BUILTIN,BOTH",
+              description = "Controls how hostname verification is performed 
during the TLS handshake."
+                            + " CLIENT (default) delegates entirely to the 
configured x509HostnameVerifier, preserving the"
+                            + " behaviour of httpclient 5.5 and earlier — a 
NoopHostnameVerifier will disable verification."
+                            + " BUILTIN uses the JDK SSLParameters hostname 
check only, ignoring the configured verifier."
+                            + " BOTH runs the JDK built-in check first and 
then the configured verifier; a NoopHostnameVerifier"
+                            + " cannot bypass the built-in check under BUILTIN 
or BOTH."
+                            + " Prefer BOTH when no custom verifier semantics 
are needed for stronger out-of-the-box security.")
+    private HostnameVerificationPolicy hostnameVerificationPolicy;
     @UriParam(label = "producer,advanced", description = "To use custom host 
header for producer. When not set in query will "
                                                          + "be ignored. When 
set will override host header derived from url.")
     private String customHostHeader;
@@ -589,6 +599,19 @@ public class HttpEndpoint extends HttpCommonEndpoint 
implements LineNumberAware
         this.x509HostnameVerifier = x509HostnameVerifier;
     }
 
+    public HostnameVerificationPolicy getHostnameVerificationPolicy() {
+        return hostnameVerificationPolicy;
+    }
+
+    /**
+     * Controls how hostname verification is performed during the TLS 
handshake. CLIENT (default) delegates entirely to
+     * the configured x509HostnameVerifier. BUILTIN uses only the JDK 
SSLParameters check. BOTH runs both; a
+     * NoopHostnameVerifier cannot bypass the built-in check under BUILTIN or 
BOTH.
+     */
+    public void setHostnameVerificationPolicy(HostnameVerificationPolicy 
hostnameVerificationPolicy) {
+        this.hostnameVerificationPolicy = hostnameVerificationPolicy;
+    }
+
     public SSLContextParameters getSslContextParameters() {
         return sslContextParameters;
     }
diff --git 
a/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsHostnameVerificationPolicyTest.java
 
b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsHostnameVerificationPolicyTest.java
new file mode 100644
index 000000000000..407b65e896f8
--- /dev/null
+++ 
b/components/camel-http/src/test/java/org/apache/camel/component/http/HttpsHostnameVerificationPolicyTest.java
@@ -0,0 +1,127 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.component.http;
+
+import org.apache.camel.BindToRegistry;
+import org.apache.camel.Exchange;
+import org.apache.camel.component.http.handler.BasicValidationHandler;
+import org.apache.camel.support.jsse.SSLContextParameters;
+import org.apache.hc.client5.http.ssl.HostnameVerificationPolicy;
+import org.apache.hc.client5.http.ssl.NoopHostnameVerifier;
+import org.apache.hc.core5.http.impl.bootstrap.HttpServer;
+import org.apache.hc.core5.http.impl.bootstrap.ServerBootstrap;
+import org.junit.jupiter.api.Test;
+
+import static org.apache.camel.component.http.HttpMethods.GET;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertNull;
+
+/**
+ * Verifies that hostnameVerificationPolicy is honoured by HttpComponent / 
HttpEndpoint.
+ *
+ * The embedded server uses a self-signed cert issued to "localhost". Tests 
connect to "localhost" so BUILTIN/BOTH pass
+ * the JDK hostname check; tests that set an invalid SNI host demonstrate that 
CLIENT delegates entirely to the
+ * configured verifier (NoopHostnameVerifier → always passes).
+ */
+public class HttpsHostnameVerificationPolicyTest extends BaseHttpsTest {
+
+    private HttpServer localServer;
+
+    @BindToRegistry("noop")
+    private NoopHostnameVerifier noop = new NoopHostnameVerifier();
+
+    @BindToRegistry("ssl")
+    private SSLContextParameters ssl = new SSLContextParameters();
+
+    @Override
+    public void doPreSetup() throws Exception {
+        localServer = ServerBootstrap.bootstrap()
+                .setCanonicalHostName("localhost")
+                .setHttpProcessor(getBasicHttpProcessor())
+                .setConnectionReuseStrategy(getConnectionReuseStrategy())
+                .setResponseFactory(getHttpResponseFactory())
+                .setSslContext(getSSLContext())
+                .register("/test/", new BasicValidationHandler(GET.name(), 
null, null, getExpectedContent()))
+                .create();
+        localServer.start();
+    }
+
+    @Override
+    public void cleanupResources() {
+        if (localServer != null) {
+            localServer.stop();
+        }
+    }
+
+    // CLIENT policy: NoopHostnameVerifier is the sole decider — request 
succeeds even though
+    // the cert is self-signed, because Noop always returns true.
+    @Test
+    public void clientPolicyWithNoopSucceeds() {
+        Exchange exchange = template.request(
+                "https://localhost:"; + localServer.getLocalPort()
+                                             + 
"/test/?x509HostnameVerifier=#noop&sslContextParameters=#ssl&hostnameVerificationPolicy=CLIENT",
+                e -> {
+                });
+        assertNotNull(exchange);
+        assertNull(exchange.getException(), "Expected no exception with CLIENT 
+ NoopHostnameVerifier");
+    }
+
+    // BOTH policy: JDK check runs first. The cert is issued to "localhost" 
and we connect to
+    // "localhost", so the built-in check passes; Noop then also passes → 
success.
+    @Test
+    public void bothPolicyLocalhostCertSucceeds() {
+        Exchange exchange = template.request(
+                "https://localhost:"; + localServer.getLocalPort()
+                                             + 
"/test/?x509HostnameVerifier=#noop&sslContextParameters=#ssl&hostnameVerificationPolicy=BOTH",
+                e -> {
+                });
+        assertNotNull(exchange);
+        assertNull(exchange.getException(), "Expected no exception with BOTH 
when hostname matches cert");
+    }
+
+    // BUILTIN policy: only the JDK SSLParameters check runs. The cert is 
issued to "localhost" and
+    // we connect to "localhost" → should pass regardless of the configured 
verifier.
+    @Test
+    public void builtinPolicyLocalhostCertSucceeds() {
+        Exchange exchange = template.request(
+                "https://localhost:"; + localServer.getLocalPort()
+                                             + 
"/test/?x509HostnameVerifier=#noop&sslContextParameters=#ssl&hostnameVerificationPolicy=BUILTIN",
+                e -> {
+                });
+        assertNotNull(exchange);
+        assertNull(exchange.getException(), "Expected no exception with 
BUILTIN when hostname matches cert");
+    }
+
+    // Verify that hostnameVerificationPolicy can also be set at the component 
level.
+    @Test
+    public void componentLevelPolicyIsRespected() {
+        HttpComponent http = context.getComponent("https", 
HttpComponent.class);
+        HostnameVerificationPolicy original = 
http.getHostnameVerificationPolicy();
+        try {
+            
http.setHostnameVerificationPolicy(HostnameVerificationPolicy.CLIENT);
+            Exchange exchange = template.request(
+                    "https://localhost:"; + localServer.getLocalPort()
+                                                 + 
"/test/?x509HostnameVerifier=#noop&sslContextParameters=#ssl",
+                    e -> {
+                    });
+            assertNotNull(exchange);
+            assertNull(exchange.getException(), "Expected no exception when 
component policy is CLIENT + Noop");
+        } finally {
+            http.setHostnameVerificationPolicy(original);
+        }
+    }
+}
diff --git 
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc 
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
index 635c11acfe6f..982c47367530 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_21.adoc
@@ -2329,6 +2329,17 @@ hostname verification. HttpClient 5.6 changed the 
default to `HostnameVerificati
 which enables the JDK check alongside the custom verifier — making 
`NoopHostnameVerifier` ineffective
 because the JDK check runs first and rejects mismatched certificates.
 
+The policy is now configurable via the `hostnameVerificationPolicy` option on 
both `HttpComponent`
+and `HttpEndpoint`, accepting `CLIENT` (default), `BUILTIN`, or `BOTH`:
+
+* `CLIENT` — only the configured `x509HostnameVerifier` decides. 
`NoopHostnameVerifier` disables verification. This is the default and preserves 
backward compatibility.
+* `BUILTIN` — only the JDK SSLParameters hostname check runs. The configured 
verifier is ignored.
+* `BOTH` — the JDK check runs first, then the configured verifier. A 
`NoopHostnameVerifier` cannot bypass the JDK check. Recommended where no custom 
verifier semantics are needed.
+
+Users who were affected by the `NoopHostnameVerifier` regression introduced in 
HttpClient 5.6 should
+keep the default `CLIENT` policy or set it explicitly. Users who want stronger 
out-of-the-box security
+and do not rely on a custom verifier can opt in to `BOTH`.
+
 The `CLIENT` policy is a deliberate choice: it preserves backward 
compatibility and allows
 `NoopHostnameVerifier` to work as documented. A future release may add an 
option to opt into the
 `BOTH` policy for defense-in-depth.
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpComponentBuilderFactory.java
index 253e52ab737f..326562318dce 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpComponentBuilderFactory.java
@@ -785,6 +785,32 @@ public interface HttpComponentBuilderFactory {
             return this;
         }
     
+        
+        /**
+         * Controls how hostname verification is performed during the TLS
+         * handshake. CLIENT (default) delegates entirely to the configured
+         * x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and
+         * earlier a NoopHostnameVerifier will disable verification. BUILTIN
+         * uses the JDK SSLParameters hostname check only, ignoring the
+         * configured verifier. BOTH runs the JDK built-in check first and then
+         * the configured verifier; a NoopHostnameVerifier cannot bypass the
+         * built-in check under BUILTIN or BOTH. Prefer BOTH when no custom
+         * verifier semantics are needed for stronger out-of-the-box security.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.hc.client5.http.ssl.HostnameVerificationPolicy&lt;/code&gt;
 type.
+         * 
+         * Default: CLIENT
+         * Group: security
+         * 
+         * @param hostnameVerificationPolicy the value to set
+         * @return the dsl builder
+         */
+        default HttpComponentBuilder 
hostnameVerificationPolicy(org.apache.hc.client5.http.ssl.HostnameVerificationPolicy
 hostnameVerificationPolicy) {
+            doSetProperty("hostnameVerificationPolicy", 
hostnameVerificationPolicy);
+            return this;
+        }
+    
         /**
          * To configure security using SSLContextParameters. Important: Only 
one
          * instance of org.apache.camel.support.jsse.SSLContextParameters is
@@ -969,6 +995,7 @@ public interface HttpComponentBuilderFactory {
             case "proxyAuthUsername": ((HttpComponent) 
component).setProxyAuthUsername((java.lang.String) value); return true;
             case "proxyHost": ((HttpComponent) 
component).setProxyHost((java.lang.String) value); return true;
             case "proxyPort": ((HttpComponent) 
component).setProxyPort((java.lang.Integer) value); return true;
+            case "hostnameVerificationPolicy": ((HttpComponent) 
component).setHostnameVerificationPolicy((org.apache.hc.client5.http.ssl.HostnameVerificationPolicy)
 value); return true;
             case "sslContextParameters": ((HttpComponent) 
component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters)
 value); return true;
             case "useGlobalSslContextParameters": ((HttpComponent) 
component).setUseGlobalSslContextParameters((boolean) value); return true;
             case "x509HostnameVerifier": ((HttpComponent) 
component).setX509HostnameVerifier((javax.net.ssl.HostnameVerifier) value); 
return true;
diff --git 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpsComponentBuilderFactory.java
 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpsComponentBuilderFactory.java
index b622ab9d6f8e..4fd82afc2b11 100644
--- 
a/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpsComponentBuilderFactory.java
+++ 
b/dsl/camel-componentdsl/src/generated/java/org/apache/camel/builder/component/dsl/HttpsComponentBuilderFactory.java
@@ -785,6 +785,32 @@ public interface HttpsComponentBuilderFactory {
             return this;
         }
     
+        
+        /**
+         * Controls how hostname verification is performed during the TLS
+         * handshake. CLIENT (default) delegates entirely to the configured
+         * x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and
+         * earlier a NoopHostnameVerifier will disable verification. BUILTIN
+         * uses the JDK SSLParameters hostname check only, ignoring the
+         * configured verifier. BOTH runs the JDK built-in check first and then
+         * the configured verifier; a NoopHostnameVerifier cannot bypass the
+         * built-in check under BUILTIN or BOTH. Prefer BOTH when no custom
+         * verifier semantics are needed for stronger out-of-the-box security.
+         * 
+         * The option is a:
+         * 
&lt;code&gt;org.apache.hc.client5.http.ssl.HostnameVerificationPolicy&lt;/code&gt;
 type.
+         * 
+         * Default: CLIENT
+         * Group: security
+         * 
+         * @param hostnameVerificationPolicy the value to set
+         * @return the dsl builder
+         */
+        default HttpsComponentBuilder 
hostnameVerificationPolicy(org.apache.hc.client5.http.ssl.HostnameVerificationPolicy
 hostnameVerificationPolicy) {
+            doSetProperty("hostnameVerificationPolicy", 
hostnameVerificationPolicy);
+            return this;
+        }
+    
         /**
          * To configure security using SSLContextParameters. Important: Only 
one
          * instance of org.apache.camel.support.jsse.SSLContextParameters is
@@ -969,6 +995,7 @@ public interface HttpsComponentBuilderFactory {
             case "proxyAuthUsername": ((HttpComponent) 
component).setProxyAuthUsername((java.lang.String) value); return true;
             case "proxyHost": ((HttpComponent) 
component).setProxyHost((java.lang.String) value); return true;
             case "proxyPort": ((HttpComponent) 
component).setProxyPort((java.lang.Integer) value); return true;
+            case "hostnameVerificationPolicy": ((HttpComponent) 
component).setHostnameVerificationPolicy((org.apache.hc.client5.http.ssl.HostnameVerificationPolicy)
 value); return true;
             case "sslContextParameters": ((HttpComponent) 
component).setSslContextParameters((org.apache.camel.support.jsse.SSLContextParameters)
 value); return true;
             case "useGlobalSslContextParameters": ((HttpComponent) 
component).setUseGlobalSslContextParameters((boolean) value); return true;
             case "x509HostnameVerifier": ((HttpComponent) 
component).setX509HostnameVerifier((javax.net.ssl.HostnameVerifier) value); 
return true;
diff --git 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java
 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java
index 13c79e4f6aef..c0552d0e5bc0 100644
--- 
a/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java
+++ 
b/dsl/camel-endpointdsl/src/generated/java/org/apache/camel/builder/endpoint/dsl/HttpEndpointBuilderFactory.java
@@ -734,6 +734,54 @@ public interface HttpEndpointBuilderFactory {
             doSetProperty("authUsername", authUsername);
             return this;
         }
+        /**
+         * Controls how hostname verification is performed during the TLS
+         * handshake. CLIENT (default) delegates entirely to the configured
+         * x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and
+         * earlier a NoopHostnameVerifier will disable verification. BUILTIN
+         * uses the JDK SSLParameters hostname check only, ignoring the
+         * configured verifier. BOTH runs the JDK built-in check first and then
+         * the configured verifier; a NoopHostnameVerifier cannot bypass the
+         * built-in check under BUILTIN or BOTH. Prefer BOTH when no custom
+         * verifier semantics are needed for stronger out-of-the-box security.
+         * 
+         * The option is a:
+         * 
<code>org.apache.hc.client5.http.ssl.HostnameVerificationPolicy</code> type.
+         * 
+         * Default: CLIENT
+         * Group: security
+         * 
+         * @param hostnameVerificationPolicy the value to set
+         * @return the dsl builder
+         */
+        default HttpEndpointBuilder 
hostnameVerificationPolicy(org.apache.hc.client5.http.ssl.HostnameVerificationPolicy
 hostnameVerificationPolicy) {
+            doSetProperty("hostnameVerificationPolicy", 
hostnameVerificationPolicy);
+            return this;
+        }
+        /**
+         * Controls how hostname verification is performed during the TLS
+         * handshake. CLIENT (default) delegates entirely to the configured
+         * x509HostnameVerifier, preserving the behaviour of httpclient 5.5 and
+         * earlier a NoopHostnameVerifier will disable verification. BUILTIN
+         * uses the JDK SSLParameters hostname check only, ignoring the
+         * configured verifier. BOTH runs the JDK built-in check first and then
+         * the configured verifier; a NoopHostnameVerifier cannot bypass the
+         * built-in check under BUILTIN or BOTH. Prefer BOTH when no custom
+         * verifier semantics are needed for stronger out-of-the-box security.
+         * 
+         * The option will be converted to a
+         * 
<code>org.apache.hc.client5.http.ssl.HostnameVerificationPolicy</code> type.
+         * 
+         * Default: CLIENT
+         * Group: security
+         * 
+         * @param hostnameVerificationPolicy the value to set
+         * @return the dsl builder
+         */
+        default HttpEndpointBuilder hostnameVerificationPolicy(String 
hostnameVerificationPolicy) {
+            doSetProperty("hostnameVerificationPolicy", 
hostnameVerificationPolicy);
+            return this;
+        }
         /**
          * Whether to use OAuth2 body authentication.
          * 

Reply via email to