You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by nf...@apache.org on 2017/04/11 14:12:07 UTC

[11/13] camel git commit: CAMEL-10650: putting flag to enable global SSL config in all components

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
index bed8ba4..3b6854d 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompComponent.java
@@ -33,6 +33,8 @@ public class StompComponent extends UriEndpointComponent implements SSLContextPa
     @Metadata(label = "security", secret = true)
     private String passcode;
     private String host;
+    @Metadata(label = "security", defaultValue = "false")
+    private boolean useGlobalSSLContextParameters;
 
     public StompComponent() {
         super(StompEndpoint.class);
@@ -50,7 +52,7 @@ public class StompComponent extends UriEndpointComponent implements SSLContextPa
         StompEndpoint endpoint = new StompEndpoint(uri, this, config, destination);
         setProperties(endpoint, parameters);
 
-        if (config.isUseGlobalSslContextParameters() && config.getSslContextParameters() == null) {
+        if (config.getSslContextParameters() == null) {
             config.setSslContextParameters(getGlobalSSLContextParameters());
         }
 
@@ -96,4 +98,17 @@ public class StompComponent extends UriEndpointComponent implements SSLContextPa
         configuration.setHost(host);
     }
 
+    @Override
+    public boolean isUseGlobalSSLContextParameters() {
+        return this.useGlobalSSLContextParameters;
+    }
+
+    /**
+     * Enable usage of global SSL context parameters.
+     */
+    @Override
+    public void setUseGlobalSSLContextParameters(boolean useGlobalSSLContextParameters) {
+        this.useGlobalSSLContextParameters = useGlobalSSLContextParameters;
+    }
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
index f46a173..61ddd0d 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompConfiguration.java
@@ -35,8 +35,6 @@ public class StompConfiguration implements Cloneable {
     private String host;
     @UriParam(label = "security")
     private SSLContextParameters sslContextParameters;
-    @Metadata(label = "security", defaultValue = "false")
-    private boolean useGlobalSslContextParameters;
 
     /**
      * Returns a copy of this configuration
@@ -105,14 +103,4 @@ public class StompConfiguration implements Cloneable {
         this.sslContextParameters = sslContextParameters;
     }
 
-    public boolean isUseGlobalSslContextParameters() {
-        return useGlobalSslContextParameters;
-    }
-
-    /**
-     * Enable usage of Camel global SSL configuration
-     */
-    public void setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters) {
-        this.useGlobalSslContextParameters = useGlobalSslContextParameters;
-    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
index 99ce061..aa1d942 100644
--- a/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
+++ b/components/camel-stomp/src/test/java/org/apache/camel/component/stomp/StompGlobalSslConsumerTest.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.stomp;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.builder.RouteBuilder;
 
 public class StompGlobalSslConsumerTest extends StompConsumerTest {
@@ -25,6 +26,8 @@ public class StompGlobalSslConsumerTest extends StompConsumerTest {
     protected CamelContext createCamelContext() throws Exception {
         CamelContext context = super.createCamelContext();
         context.setSSLContextParameters(getClientSSLContextParameters());
+
+        ((SSLContextParametersAware) context.getComponent("stomp")).setUseGlobalSSLContextParameters(true);
         return context;
     }
 
@@ -37,7 +40,7 @@ public class StompGlobalSslConsumerTest extends StompConsumerTest {
     protected RouteBuilder createRouteBuilder() {
         return new RouteBuilder() {
             public void configure() {
-                fromF("stomp:queue:test?brokerURL=ssl://localhost:%d&useGlobalSslContextParameters=true", getPort())
+                fromF("stomp:queue:test?brokerURL=ssl://localhost:%d", getPort())
                     .transform(body().convertToString())
                     .to("mock:result");
             }

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
index 1bc598c..3c57475 100644
--- a/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
+++ b/components/camel-undertow/src/main/java/org/apache/camel/component/undertow/UndertowComponent.java
@@ -65,6 +65,8 @@ public class UndertowComponent extends DefaultComponent implements RestConsumerF
     private UndertowHttpBinding undertowHttpBinding;
     @Metadata(label = "security")
     private SSLContextParameters sslContextParameters;
+    @Metadata(label = "security", defaultValue = "false")
+    private boolean useGlobalSSLContextParameters;
     @Metadata(label = "advanced")
     private UndertowHostOptions hostOptions;
 
@@ -331,6 +333,18 @@ public class UndertowComponent extends DefaultComponent implements RestConsumerF
         this.sslContextParameters = sslContextParameters;
     }
 
+    @Override
+    public boolean isUseGlobalSSLContextParameters() {
+        return this.useGlobalSSLContextParameters;
+    }
+
+    /**
+     * Enable usage of global SSL context parameters.
+     */
+    @Override
+    public void setUseGlobalSSLContextParameters(boolean useGlobalSSLContextParameters) {
+        this.useGlobalSSLContextParameters = useGlobalSSLContextParameters;
+    }
 
     public UndertowHostOptions getHostOptions() {
         return hostOptions;

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
index c575960..d69706b 100644
--- a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketComponent.java
@@ -66,8 +66,8 @@ public class WebsocketComponent extends UriEndpointComponent implements SSLConte
 
     @Metadata(label = "security")
     protected SSLContextParameters sslContextParameters;
-    @Metadata(label = "security", defaultValue = "true")
-    protected boolean useGlobalSslContextParameters = true;
+    @Metadata(label = "security", defaultValue = "false")
+    protected boolean useGlobalSSLContextParameters;
     @Metadata(label = "advanced")
     protected ThreadPool threadPool;
     @Metadata(defaultValue = "9292")
@@ -280,10 +280,7 @@ public class WebsocketComponent extends UriEndpointComponent implements SSLConte
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         SSLContextParameters sslContextParameters = resolveAndRemoveReferenceParameter(parameters, "sslContextParameters", SSLContextParameters.class);
-        Boolean useGlobalSslContextParameters = getAndRemoveParameter(parameters, "useGlobalSslContextParameters", Boolean.class);
-        if (useGlobalSslContextParameters == null) {
-            useGlobalSslContextParameters = this.useGlobalSslContextParameters;
-        }
+
         Boolean enableJmx = getAndRemoveParameter(parameters, "enableJmx", Boolean.class);
         String staticResources = getAndRemoveParameter(parameters, "staticResources", String.class);
         int port = extractPortNumber(remaining);
@@ -302,7 +299,7 @@ public class WebsocketComponent extends UriEndpointComponent implements SSLConte
             // fallback to component configured
             sslContextParameters = getSslContextParameters();
         }
-        if (useGlobalSslContextParameters && sslContextParameters == null) {
+        if (sslContextParameters == null) {
             sslContextParameters = getGlobalSSLContextParameters();
         }
 
@@ -319,7 +316,6 @@ public class WebsocketComponent extends UriEndpointComponent implements SSLConte
         endpoint.setSslContextParameters(sslContextParameters);
         endpoint.setPort(port);
         endpoint.setHost(host);
-        endpoint.setUseGlobalSslContextParameters(useGlobalSslContextParameters);
 
         setProperties(endpoint, parameters);
         return endpoint;
@@ -738,15 +734,17 @@ public class WebsocketComponent extends UriEndpointComponent implements SSLConte
         this.sslContextParameters = sslContextParameters;
     }
 
-    public boolean isUseGlobalSslContextParameters() {
-        return useGlobalSslContextParameters;
+    @Override
+    public boolean isUseGlobalSSLContextParameters() {
+        return this.useGlobalSSLContextParameters;
     }
 
     /**
-     * Enable usage of Camel global SSL context parameters
+     * Enable usage of global SSL context parameters.
      */
-    public void setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters) {
-        this.useGlobalSslContextParameters = useGlobalSslContextParameters;
+    @Override
+    public void setUseGlobalSSLContextParameters(boolean useGlobalSSLContextParameters) {
+        this.useGlobalSSLContextParameters = useGlobalSSLContextParameters;
     }
 
     public Map<String, WebSocketFactory> getSocketFactory() {

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
index 27427c8..cdd4cbf 100644
--- a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
@@ -64,8 +64,6 @@ public class WebsocketEndpoint extends DefaultEndpoint {
     private boolean crossOriginFilterOn;
     @UriParam(label = "security")
     private SSLContextParameters sslContextParameters;
-    @UriParam(label = "security", defaultValue = "true")
-    private boolean useGlobalSslContextParameters = true;
     @UriParam(label = "cors")
     private String allowedOrigins;
     @UriParam(label = "cors")
@@ -297,17 +295,6 @@ public class WebsocketEndpoint extends DefaultEndpoint {
         this.sslContextParameters = sslContextParameters;
     }
 
-    public boolean isUseGlobalSslContextParameters() {
-        return useGlobalSslContextParameters;
-    }
-
-    /**
-     * Enable usage of Camel global SSL context parameters
-     */
-    public void setUseGlobalSslContextParameters(boolean useGlobalSslContextParameters) {
-        this.useGlobalSslContextParameters = useGlobalSslContextParameters;
-    }
-
     public boolean isEnableJmx() {
         return this.enableJmx;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
index 2ba350a..7dee865 100644
--- a/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
+++ b/components/camel-websocket/src/test/java/org/apache/camel/component/websocket/WebsocketSSLContextGlobalRouteExampleTest.java
@@ -30,6 +30,7 @@ import io.netty.handler.ssl.ClientAuth;
 import io.netty.handler.ssl.JdkSslContext;
 
 import org.apache.camel.CamelContext;
+import org.apache.camel.SSLContextParametersAware;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.test.AvailablePortFinder;
 import org.apache.camel.test.junit4.CamelTestSupport;
@@ -94,6 +95,8 @@ public class WebsocketSSLContextGlobalRouteExampleTest extends CamelTestSupport
         sslContextParameters.setTrustManagers(tmp);
         sslContextParameters.setServerParameters(scsp);
         context.setSSLContextParameters(sslContextParameters);
+
+        ((SSLContextParametersAware) context.getComponent("websocket")).setUseGlobalSSLContextParameters(true);
         return context;
     }
 

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
index 619b34f..c0c7a25 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentConfiguration.java
@@ -63,6 +63,10 @@ public class HttpComponentConfiguration {
      */
     private Boolean allowJavaSerializedObject = false;
     /**
+     * Enable usage of global SSL context parameters.
+     */
+    private Boolean useGlobalSSLContextParameters = false;
+    /**
      * To use a custom org.apache.camel.spi.HeaderFilterStrategy to filter
      * header to and from Camel message.
      */
@@ -117,6 +121,15 @@ public class HttpComponentConfiguration {
         this.allowJavaSerializedObject = allowJavaSerializedObject;
     }
 
+    public Boolean getUseGlobalSSLContextParameters() {
+        return useGlobalSSLContextParameters;
+    }
+
+    public void setUseGlobalSSLContextParameters(
+            Boolean useGlobalSSLContextParameters) {
+        this.useGlobalSSLContextParameters = useGlobalSSLContextParameters;
+    }
+
     public HeaderFilterStrategy getHeaderFilterStrategy() {
         return headerFilterStrategy;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
index d8d6988..40f4bca 100644
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
+++ b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLAutoConfiguration.java
@@ -30,48 +30,51 @@ import org.springframework.beans.factory.config.BeanFactoryPostProcessor;
 import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
 import org.springframework.boot.autoconfigure.AutoConfigureAfter;
 import org.springframework.boot.autoconfigure.condition.ConditionalOnBean;
-import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.context.annotation.Bean;
 import org.springframework.context.annotation.Configuration;
 
 /**
- * Generated by camel-package-maven-plugin - do not edit this file!
+ * Configuration of global SSL parameters.
  */
 @Configuration
-@ConditionalOnBean(type = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@AutoConfigureAfter(name = "org.apache.camel.spring.boot.CamelAutoConfiguration")
-@ConditionalOnProperty(value = "camel.component.http.ssl.auto-configure", matchIfMissing = true)
+@ConditionalOnBean(HttpComponentAutoConfiguration.class)
+@AutoConfigureAfter(HttpComponentAutoConfiguration.class)
 public class HttpComponentSSLAutoConfiguration {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpComponentSSLAutoConfiguration.class);
 
     @Bean
-    public HttpSSLPostProcessor cacheAutoConfigurationValidatorPostProcessor(CamelContext context) {
-        return new HttpSSLPostProcessor(context);
+    public HttpSSLPostProcessor cacheAutoConfigurationValidatorPostProcessor(CamelContext context, HttpComponentConfiguration config) {
+        return new HttpSSLPostProcessor(context, config);
     }
 
     static class HttpSSLPostProcessor implements BeanFactoryPostProcessor {
 
         private CamelContext context;
 
-        HttpSSLPostProcessor(CamelContext context) {
+        private HttpComponentConfiguration config;
+
+        HttpSSLPostProcessor(CamelContext context, HttpComponentConfiguration config) {
             this.context = context;
+            this.config = config;
         }
 
         @Override
         public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {
             try {
-                SSLContextParameters globalSSLParams = context.getSSLContextParameters();
+                if (config != null && config.getUseGlobalSSLContextParameters() != null && config.getUseGlobalSSLContextParameters()) {
+                    SSLContextParameters globalSSLParams = context.getSSLContextParameters();
 
-                if (globalSSLParams != null) {
-                    ProtocolSocketFactory factory =
-                            new SSLContextParametersSecureProtocolSocketFactory(globalSSLParams, context);
+                    if (globalSSLParams != null) {
+                        ProtocolSocketFactory factory =
+                                new SSLContextParametersSecureProtocolSocketFactory(globalSSLParams, context);
 
-                    Protocol.registerProtocol("https",
-                            new Protocol(
-                                    "https",
-                                    factory,
-                                    443));
+                        Protocol.registerProtocol("https",
+                                new Protocol(
+                                        "https",
+                                        factory,
+                                        443));
+                    }
                 }
 
             } catch (NoUniqueBeanDefinitionException e) {

http://git-wip-us.apache.org/repos/asf/camel/blob/d51aa65d/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLConfiguration.java
----------------------------------------------------------------------
diff --git a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLConfiguration.java b/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLConfiguration.java
deleted file mode 100644
index c1fc238..0000000
--- a/platforms/spring-boot/components-starter/camel-http-starter/src/main/java/org/apache/camel/component/http/springboot/HttpComponentSSLConfiguration.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * 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.springboot;
-
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-/**
- * SSL related options
- */
-@ConfigurationProperties(prefix = "camel.component.http.ssl")
-public class HttpComponentSSLConfiguration {
-
-    /**
-     * Auto-configure SSL from SSLContextParameters.
-     */
-    private boolean autoConfigure = true;
-
-    public HttpComponentSSLConfiguration() {
-    }
-
-    public boolean isAutoConfigure() {
-        return autoConfigure;
-    }
-
-    public void setAutoConfigure(boolean autoConfigure) {
-        this.autoConfigure = autoConfigure;
-    }
-
-}
\ No newline at end of file