You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by lb...@apache.org on 2016/12/12 16:31:10 UTC

[2/2] camel git commit: CAMEL-10588: Add HTTP proxy config params to camel-servicenow

CAMEL-10588: Add HTTP proxy config params to camel-servicenow


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/5999fb22
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5999fb22
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5999fb22

Branch: refs/heads/master
Commit: 5999fb22336023e22e6c996215e0ac641257676d
Parents: 87898bf
Author: lburgazzoli <lb...@gmail.com>
Authored: Mon Dec 12 15:18:00 2016 +0100
Committer: lburgazzoli <lb...@gmail.com>
Committed: Mon Dec 12 15:18:00 2016 +0100

----------------------------------------------------------------------
 .../ServiceNowComponentConfiguration.java       | 48 ++++++++++++++++++
 .../src/main/docs/servicenow-component.adoc     |  6 ++-
 .../component/servicenow/ServiceNowClient.java  | 45 +++++++++++++++++
 .../servicenow/ServiceNowConfiguration.java     | 52 ++++++++++++++++++++
 4 files changed, 150 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5999fb22/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java b/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
index 24caf73..83809362 100644
--- a/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
+++ b/components-starter/camel-servicenow-starter/src/main/java/org/apache/camel/component/servicenow/springboot/ServiceNowComponentConfiguration.java
@@ -287,6 +287,22 @@ public class ServiceNowComponentConfiguration {
          */
         @NestedConfigurationProperty
         private ProxyAuthorizationPolicy proxyAuthorizationPolicy;
+        /**
+         * The proxy host name
+         */
+        private String proxyHost;
+        /**
+         * The proxy port number
+         */
+        private Integer proxyPort;
+        /**
+         * Username for proxy authentication
+         */
+        private String proxyUserName;
+        /**
+         * Password for proxy authentication
+         */
+        private String proxyPassword;
         private Map models;
         /**
          * Defines the response model
@@ -561,6 +577,38 @@ public class ServiceNowComponentConfiguration {
             this.proxyAuthorizationPolicy = proxyAuthorizationPolicy;
         }
 
+        public String getProxyHost() {
+            return proxyHost;
+        }
+
+        public void setProxyHost(String proxyHost) {
+            this.proxyHost = proxyHost;
+        }
+
+        public Integer getProxyPort() {
+            return proxyPort;
+        }
+
+        public void setProxyPort(Integer proxyPort) {
+            this.proxyPort = proxyPort;
+        }
+
+        public String getProxyUserName() {
+            return proxyUserName;
+        }
+
+        public void setProxyUserName(String proxyUserName) {
+            this.proxyUserName = proxyUserName;
+        }
+
+        public String getProxyPassword() {
+            return proxyPassword;
+        }
+
+        public void setProxyPassword(String proxyPassword) {
+            this.proxyPassword = proxyPassword;
+        }
+
         public Map getModels() {
             return models;
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/5999fb22/components/camel-servicenow/src/main/docs/servicenow-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/docs/servicenow-component.adoc b/components/camel-servicenow/src/main/docs/servicenow-component.adoc
index ac87e0d..f122586 100644
--- a/components/camel-servicenow/src/main/docs/servicenow-component.adoc
+++ b/components/camel-servicenow/src/main/docs/servicenow-component.adoc
@@ -57,7 +57,7 @@ The ServiceNow component supports 7 options which are listed below.
 
 
 // endpoint options: START
-The ServiceNow component supports 37 endpoint options which are listed below:
+The ServiceNow component supports 41 endpoint options which are listed below:
 
 {% raw %}
 [width="100%",cols="2,1,1m,1m,5",options="header"]
@@ -93,11 +93,15 @@ The ServiceNow component supports 37 endpoint options which are listed below:
 | mapper | advanced |  | ObjectMapper | Sets Jackson's ObjectMapper to use for request/reply
 | proxyAuthorizationPolicy | advanced |  | ProxyAuthorizationPolicy | To configure proxy authentication
 | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
+| proxyHost | proxy |  | String | The proxy host name
+| proxyPort | proxy |  | Integer | The proxy port number
 | apiUrl | security |  | String | The ServiceNow REST API url
 | oauthClientId | security |  | String | OAuth2 ClientID
 | oauthClientSecret | security |  | String | OAuth2 ClientSecret
 | oauthTokenUrl | security |  | String | OAuth token Url
 | password | security |  | String | ServiceNow account password MUST be provided
+| proxyPassword | security |  | String | Password for proxy authentication
+| proxyUserName | security |  | String | Username for proxy authentication
 | sslContextParameters | security |  | SSLContextParameters | To configure security using SSLContextParameters. See http://camel.apache.org/camel-configuration-utilities.html
 | userName | security |  | String | ServiceNow user account name MUST be provided
 |=======================================================================

http://git-wip-us.apache.org/repos/asf/camel/blob/5999fb22/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java
index 0d7fb5d..2bdd86a 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowClient.java
@@ -29,8 +29,10 @@ import org.apache.camel.Message;
 import org.apache.camel.component.servicenow.auth.AuthenticationRequestFilter;
 import org.apache.camel.util.jsse.SSLContextParameters;
 import org.apache.cxf.configuration.jsse.TLSClientParameters;
+import org.apache.cxf.configuration.security.ProxyAuthorizationPolicy;
 import org.apache.cxf.jaxrs.client.WebClient;
 import org.apache.cxf.transport.http.HTTPConduit;
+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;
 
 public final class ServiceNowClient {
     private final ServiceNowConfiguration configuration;
@@ -50,6 +52,8 @@ public final class ServiceNowClient {
 
         configureRequestContext(camelContext, configuration, client);
         configureTls(camelContext, configuration, client);
+        configureHttpClientPolicy(camelContext, configuration, client);
+        configureProxyAuthorizationPolicy(camelContext, configuration, client);
     }
 
     public ServiceNowClient types(MediaType type) {
@@ -174,4 +178,45 @@ public final class ServiceNowClient {
             conduit.setTlsClientParameters(tlsClientParams);
         }
     }
+
+    private static void configureHttpClientPolicy(
+            CamelContext context, ServiceNowConfiguration configuration, WebClient client) throws Exception {
+
+        HTTPClientPolicy httpPolicy = configuration.getHttpClientPolicy();
+        if (httpPolicy == null) {
+            String host = configuration.getProxyHost();
+            Integer port = configuration.getProxyPort();
+
+            if (host != null && port != null) {
+                httpPolicy = new HTTPClientPolicy();
+                httpPolicy.setProxyServer(host);
+                httpPolicy.setProxyServerPort(port);
+            }
+        }
+
+        if (httpPolicy != null) {
+            WebClient.getConfig(client).getHttpConduit().setClient(httpPolicy);
+        }
+    }
+
+    private static void configureProxyAuthorizationPolicy(
+            CamelContext context, ServiceNowConfiguration configuration, WebClient client) throws Exception {
+
+        ProxyAuthorizationPolicy proxyPolicy = configuration.getProxyAuthorizationPolicy();
+        if (proxyPolicy == null) {
+            String username = configuration.getProxyUserName();
+            String password = configuration.getProxyPassword();
+
+            if (username != null && password != null) {
+                proxyPolicy = new ProxyAuthorizationPolicy();
+                proxyPolicy.setAuthorizationType("Basic");
+                proxyPolicy.setUserName(username);
+                proxyPolicy.setPassword(password);
+            }
+        }
+
+        if (proxyPolicy != null) {
+            WebClient.getConfig(client).getHttpConduit().setProxyAuthorization(proxyPolicy);
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/5999fb22/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
index fe930e8..dd23df9 100644
--- a/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
+++ b/components/camel-servicenow/src/main/java/org/apache/camel/component/servicenow/ServiceNowConfiguration.java
@@ -111,6 +111,14 @@ public class ServiceNowConfiguration implements Cloneable {
     private HTTPClientPolicy httpClientPolicy;
     @UriParam(label = "advanced")
     private ProxyAuthorizationPolicy proxyAuthorizationPolicy;
+    @UriParam(label = "proxy")
+    private String proxyHost;
+    @UriParam(label = "proxy")
+    private Integer proxyPort;
+    @UriParam(label = "proxy,security")
+    private String proxyUserName;
+    @UriParam(label = "proxy,security")
+    private String proxyPassword;
 
     public String getUserName() {
         return userName;
@@ -515,6 +523,50 @@ public class ServiceNowConfiguration implements Cloneable {
         this.proxyAuthorizationPolicy = proxyAuthorizationPolicy;
     }
 
+    public String getProxyHost() {
+        return proxyHost;
+    }
+
+    /**
+     * The proxy host name
+     */
+    public void setProxyHost(String proxyHost) {
+        this.proxyHost = proxyHost;
+    }
+
+    public Integer getProxyPort() {
+        return proxyPort;
+    }
+
+    /**
+     * The proxy port number
+     */
+    public void setProxyPort(Integer proxyPort) {
+        this.proxyPort = proxyPort;
+    }
+
+    public String getProxyUserName() {
+        return proxyUserName;
+    }
+
+    /**
+     * Username for proxy authentication
+     */
+    public void setProxyUserName(String proxyUserName) {
+        this.proxyUserName = proxyUserName;
+    }
+
+    public String getProxyPassword() {
+        return proxyPassword;
+    }
+
+    /**
+     * Password for proxy authentication
+     */
+    public void setProxyPassword(String proxyPassword) {
+        this.proxyPassword = proxyPassword;
+    }
+
     // *************************************************
     //
     // *************************************************