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

davsclaus pushed a commit to branch camel-2.x
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/camel-2.x by this push:
     new b76e7e3  Add parameter to suppress use of X-Forwarded-Host by Swagger 
api-docs  (CAMEL-13126) (#2782)
b76e7e3 is described below

commit b76e7e3195f045331782dcb50cb2041677598e0e
Author: Darius <[email protected]>
AuthorDate: Sun Feb 17 02:23:34 2019 -0500

    Add parameter to suppress use of X-Forwarded-Host by Swagger api-docs  
(CAMEL-13126) (#2782)
---
 camel-core/src/main/docs/rest-dsl.adoc             |  1 +
 .../model/rest/RestConfigurationDefinition.java    | 28 ++++++++++++++++++++++
 .../org/apache/camel/spi/RestConfiguration.java    | 23 ++++++++++++++++++
 .../apache/camel/swagger/RestSwaggerSupport.java   |  8 +++++--
 4 files changed, 58 insertions(+), 2 deletions(-)

diff --git a/camel-core/src/main/docs/rest-dsl.adoc 
b/camel-core/src/main/docs/rest-dsl.adoc
index 5d552aa..7775a5c 100644
--- a/camel-core/src/main/docs/rest-dsl.adoc
+++ b/camel-core/src/main/docs/rest-dsl.adoc
@@ -490,6 +490,7 @@ bindings.
                     `file:` or `http:` to refer to resources to load from file 
or http url.
 |scheme | http|The scheme to use for exposing the REST service. Usually http 
or https is supported
 |host |- |The hostname to use for exposing the REST service.
+|useXForwardHeaders |true |Whether to use X-Forwarded-Host (or Host) from 
incoming HTTP Header to set the hostname
 |apiHost |- |Specific hostname for the API documentation (eg swagger)
 
              This can be used to override the generated host with this 
configured hostname
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
index abc7810..65b3d4c 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
@@ -58,6 +58,9 @@ public class RestConfigurationDefinition {
     @XmlAttribute
     private String apiHost;
 
+    @XmlAttribute @Metadata(defaultValue = "true")
+    private Boolean useXForwardHeaders;
+
     @XmlAttribute
     private String port;
 
@@ -772,6 +775,14 @@ public class RestConfigurationDefinition {
         return corsHeaderProperty("Access-Control-Allow-Credentials", 
String.valueOf(corsAllowCredentials));
     }
 
+    /**
+     * To specify whether to use X-Forward headers for Host and related setting
+     */
+    public RestConfigurationDefinition useXForwardHeaders(boolean 
useXForwardHeaders) {
+        setUseXForwardHeaders(useXForwardHeaders);
+        return this;
+    }
+
 
     // Implementation
     //-------------------------------------------------------------------------
@@ -907,7 +918,24 @@ public class RestConfigurationDefinition {
             }
             answer.setCorsHeaders(props);
         }
+        if (useXForwardHeaders != null) {
+            answer.setUseXForwardHeaders(useXForwardHeaders);
+        }
         return answer;
     }
 
+
+    public Boolean getUseXForwardHeaders() {
+        return useXForwardHeaders;
+    }
+
+    /**
+     * Whether to use X-Forward headers for Host and related setting.
+     * <p/>
+     * The default value is true.
+     */
+    public void setUseXForwardHeaders(Boolean useXForwardHeaders) {
+        this.useXForwardHeaders = useXForwardHeaders;
+    }
+
 }
diff --git 
a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java 
b/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
index a1f2df4..c28b684 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/RestConfiguration.java
@@ -44,6 +44,7 @@ public class RestConfiguration {
     private String scheme;
     private String host;
     private String apiHost;
+    private boolean useXForwardHeaders = true;
     private int port;
     private String contextPath;
     private String apiContextPath;
@@ -594,4 +595,26 @@ public class RestConfiguration {
     public void setCorsHeaders(Map<String, String> corsHeaders) {
         this.corsHeaders = corsHeaders;
     }
+
+    /**
+     * Whether to use X-FOWARD headers to set host etc. for Swagger.
+     * <p/>
+     * This option is default <tt>true</tt>.
+     *
+     * @return whether to use X-FOWARD headers
+     */
+    public boolean isUseXForwardHeaders() {
+        return useXForwardHeaders;
+    }
+
+    /**
+     * WWhether to use X-FOWARD headers to set host etc. for Swagger.
+     * <p/>
+     * This option is default <tt>true</tt>.
+     *
+     * @param useXForwardHeaders whether to use X-FOWARD headers
+     */
+    public void setUseXForwardHeaders(boolean useXForwardHeaders) {
+        this.useXForwardHeaders = useXForwardHeaders;
+    }
 }
diff --git 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
index b549634..8348ec1 100644
--- 
a/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
+++ 
b/components/camel-swagger-java/src/main/java/org/apache/camel/swagger/RestSwaggerSupport.java
@@ -217,7 +217,9 @@ public class RestSwaggerSupport {
 
                 // read the rest-dsl into swagger model
                 Swagger swagger = reader.read(rests, route, swaggerConfig, 
contextId, classResolver);
-                setupXForwardedHeaders(swagger, headers);
+                if (configuration.isUseXForwardHeaders()) {
+                    setupXForwardedHeaders(swagger, headers);
+                }
 
                 if (!configuration.isApiVendorExtension()) {
                     clearVendorExtensions(swagger);
@@ -237,7 +239,9 @@ public class RestSwaggerSupport {
 
                 // read the rest-dsl into swagger model
                 Swagger swagger = reader.read(rests, route, swaggerConfig, 
contextId, classResolver);
-                setupXForwardedHeaders(swagger, headers);
+                if (configuration.isUseXForwardHeaders()) {
+                    setupXForwardedHeaders(swagger, headers);
+                }
 
                 if (!configuration.isApiVendorExtension()) {
                     clearVendorExtensions(swagger);

Reply via email to