You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ni...@apache.org on 2011/04/25 04:52:46 UTC
svn commit: r1096398 [3/4] - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/util/jsse/
camel-core/src/test/java/org/apache/camel/util/jsse/
camel-core/src/test/resources/org/apache/camel/util/
camel-core/src/test/resources/org/apache/camel/...
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,653 @@
+/**
+ * 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.util.jsse;
+
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
+
+import javax.net.ssl.SSLContext;
+import javax.net.ssl.SSLEngine;
+import javax.net.ssl.SSLServerSocket;
+import javax.net.ssl.SSLSocket;
+
+import junit.framework.TestCase;
+
+public class SSLContextParametersTest extends TestCase {
+
+ public void testServerParametersClientAuthentication() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+
+ SSLContextParameters scp = new SSLContextParameters();
+ SSLContextServerParameters scsp = new SSLContextServerParameters();
+
+ SSLContext context = scp.createSSLContext();
+ scp.setServerParameters(scsp);
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(controlServerSocket.getWantClientAuth(), serverSocket.getWantClientAuth());
+ assertEquals(controlServerSocket.getNeedClientAuth(), serverSocket.getNeedClientAuth());
+ assertEquals(controlEngine.getWantClientAuth(), engine.getWantClientAuth());
+ assertEquals(controlEngine.getNeedClientAuth(), engine.getNeedClientAuth());
+
+ // ClientAuthentication - NONE
+ scsp.setClientAuthentication(ClientAuthentication.NONE);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(false, serverSocket.getWantClientAuth());
+ assertEquals(false, serverSocket.getNeedClientAuth());
+ assertEquals(false, engine.getWantClientAuth());
+ assertEquals(false, engine.getNeedClientAuth());
+
+ // ClientAuthentication - WANT
+ scsp.setClientAuthentication(ClientAuthentication.WANT);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(true, serverSocket.getWantClientAuth());
+ assertEquals(false, serverSocket.getNeedClientAuth());
+ assertEquals(true, engine.getWantClientAuth());
+ assertEquals(false, engine.getNeedClientAuth());
+
+ // ClientAuthentication - REQUIRE
+ scsp.setClientAuthentication(ClientAuthentication.REQUIRE);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(false, serverSocket.getWantClientAuth());
+ assertEquals(true, serverSocket.getNeedClientAuth());
+ assertEquals(false, engine.getWantClientAuth());
+ assertEquals(true, engine.getNeedClientAuth());
+ }
+
+ public void testServerParameters() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+
+ SSLContextParameters scp = new SSLContextParameters();
+ SSLContextServerParameters scsp = new SSLContextServerParameters();
+
+ SSLContext context = scp.createSSLContext();
+ scp.setServerParameters(scsp);
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+ assertEquals(controlServerSocket.getWantClientAuth(), serverSocket.getWantClientAuth());
+ assertEquals(controlServerSocket.getNeedClientAuth(), serverSocket.getNeedClientAuth());
+
+ // Csp on server params
+ CipherSuitesParameters csp = new CipherSuitesParameters();
+ scsp.setCipherSuites(csp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertEquals(0, serverSocket.getEnabledCipherSuites().length);
+
+ // Cipher suites filter on server params
+ FilterParameters filter = new FilterParameters();
+ filter.getExclude().add(".*");
+ scsp.setCipherSuites(null);
+ scsp.setCipherSuitesFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertEquals(0, serverSocket.getEnabledCipherSuites().length);
+
+ // Csp on server overrides cipher suites filter on server
+ filter.getInclude().add(".*");
+ filter.getExclude().clear();
+ scsp.setCipherSuites(csp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertEquals(0, serverSocket.getEnabledCipherSuites().length);
+
+ // Sspp on server params
+ SecureSocketProtocolsParameters sspp = new SecureSocketProtocolsParameters();
+ scsp.setSecureSocketProtocols(sspp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // Secure socket protocols filter on client params
+ filter = new FilterParameters();
+ filter.getExclude().add(".*");
+ scsp.setSecureSocketProtocols(null);
+ scsp.setSecureSocketProtocolsFilter(filter);
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // Sspp on client params overrides secure socket protocols filter on client
+ filter.getInclude().add(".*");
+ filter.getExclude().clear();
+ scsp.setSecureSocketProtocols(sspp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // Server session timeout only affects server session configuration
+ scsp.setSessionTimeout(12345);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(controlContext.getClientSessionContext().getSessionTimeout(), context.getClientSessionContext().getSessionTimeout());
+ assertEquals(12345, context.getServerSessionContext().getSessionTimeout());
+ }
+
+ public void testClientParameters() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+
+ SSLContextParameters scp = new SSLContextParameters();
+ SSLContextClientParameters sccp = new SSLContextClientParameters();
+
+ SSLContext context = scp.createSSLContext();
+ scp.setClientParameters(sccp);
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+
+ // Csp on client params
+ CipherSuitesParameters csp = new CipherSuitesParameters();
+ sccp.setCipherSuites(csp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertEquals(0, socket.getEnabledCipherSuites().length);
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+
+ // Cipher suites filter on client params
+ FilterParameters filter = new FilterParameters();
+ filter.getExclude().add(".*");
+ sccp.setCipherSuites(null);
+ sccp.setCipherSuitesFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertEquals(0, socket.getEnabledCipherSuites().length);
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+
+ // Csp on client overrides cipher suites filter on client
+ filter.getInclude().add(".*");
+ filter.getExclude().clear();
+ sccp.setCipherSuites(csp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertEquals(0, socket.getEnabledCipherSuites().length);
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+
+ // Sspp on client params
+ SecureSocketProtocolsParameters sspp = new SecureSocketProtocolsParameters();
+ sccp.setSecureSocketProtocols(sspp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // Secure socket protocols filter on client params
+ filter = new FilterParameters();
+ filter.getExclude().add(".*");
+ sccp.setSecureSocketProtocols(null);
+ sccp.setSecureSocketProtocolsFilter(filter);
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // Sspp on client params overrides secure socket protocols filter on client
+ filter.getInclude().add(".*");
+ filter.getExclude().clear();
+ sccp.setSecureSocketProtocols(sspp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // Client session timeout only affects client session configuration
+ sccp.setSessionTimeout(12345);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(controlContext.getServerSessionContext().getSessionTimeout(), context.getServerSessionContext().getSessionTimeout());
+ assertEquals(12345, context.getClientSessionContext().getSessionTimeout());
+ }
+
+ public void testCipherSuites() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+ // default
+ SSLContextParameters scp = new SSLContextParameters();
+
+ SSLContext context = scp.createSSLContext();
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledCipherSuites(), engine.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledCipherSuites(), socket.getEnabledCipherSuites()));
+ assertTrue(Arrays.equals(this.getDefaultCipherSuiteIncludes(controlServerSocket.getSupportedCipherSuites()), serverSocket.getEnabledCipherSuites()));
+
+
+ // empty csp
+
+ CipherSuitesParameters csp = new CipherSuitesParameters();
+ scp.setCipherSuites(csp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledCipherSuites().length);
+ assertEquals(0, socket.getEnabledCipherSuites().length);
+ assertEquals(0, serverSocket.getEnabledCipherSuites().length);
+
+ // explicit csp
+
+ csp.getCipherSuite().add(controlEngine.getEnabledCipherSuites()[0]);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(1, engine.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], engine.getEnabledCipherSuites()[0]);
+ assertEquals(1, socket.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], socket.getEnabledCipherSuites()[0]);
+ assertEquals(1, serverSocket.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], serverSocket.getEnabledCipherSuites()[0]);
+
+ // explicit csp overrides filter
+
+ FilterParameters filter = new FilterParameters();
+ filter.getInclude().add(".*");
+ scp.setCipherSuitesFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(1, engine.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], engine.getEnabledCipherSuites()[0]);
+ assertEquals(1, socket.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], socket.getEnabledCipherSuites()[0]);
+ assertEquals(1, socket.getEnabledCipherSuites().length);
+ assertEquals(controlEngine.getEnabledCipherSuites()[0], serverSocket.getEnabledCipherSuites()[0]);
+ }
+
+ public void testCipherSuitesFilter() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+ // default
+ SSLContextParameters scp = new SSLContextParameters();
+
+ SSLContext context = scp.createSSLContext();
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // empty filter
+
+ FilterParameters filter = new FilterParameters();
+ scp.setSecureSocketProtocolsFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledProtocols().length);
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // explicit filter
+
+ filter.getInclude().add(".*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // explicit filter with excludes (excludes overrides)
+ filter.getExclude().add(".*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledProtocols().length);
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // explicit filter single include
+
+ filter.getInclude().clear();
+ filter.getExclude().clear();
+ filter.getInclude().add("TLS.*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(engine.getEnabledProtocols().length >= 1);
+ assertStartsWith(engine.getEnabledProtocols(), "TLS");
+ assertTrue(socket.getEnabledProtocols().length >= 1);
+ assertStartsWith(socket.getEnabledProtocols(), "TLS");
+ assertTrue(socket.getEnabledProtocols().length >= 1);
+ assertStartsWith(serverSocket.getEnabledProtocols(), "TLS");
+ }
+
+ public void testSecureSocketProtocols() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+ // default
+ SSLContextParameters scp = new SSLContextParameters();
+
+ SSLContext context = scp.createSSLContext();
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // empty sspp
+
+ SecureSocketProtocolsParameters sspp = new SecureSocketProtocolsParameters();
+ scp.setSecureSocketProtocols(sspp);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledProtocols().length);
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // explicit sspp
+
+ sspp.getSecureSocketProtocol().add("TLSv1");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(1, engine.getEnabledProtocols().length);
+ assertEquals("TLSv1", engine.getEnabledProtocols()[0]);
+ assertEquals(1, socket.getEnabledProtocols().length);
+ assertEquals("TLSv1", socket.getEnabledProtocols()[0]);
+ assertEquals(1, serverSocket.getEnabledProtocols().length);
+ assertEquals("TLSv1", serverSocket.getEnabledProtocols()[0]);
+
+ // explicit sspp overrides filter
+
+ FilterParameters filter = new FilterParameters();
+ filter.getInclude().add(".*");
+ scp.setSecureSocketProtocolsFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(1, engine.getEnabledProtocols().length);
+ assertEquals("TLSv1", engine.getEnabledProtocols()[0]);
+ assertEquals(1, socket.getEnabledProtocols().length);
+ assertEquals("TLSv1", socket.getEnabledProtocols()[0]);
+ assertEquals(1, socket.getEnabledProtocols().length);
+ assertEquals("TLSv1", serverSocket.getEnabledProtocols()[0]);
+ }
+
+ public void testSecureSocketProtocolsFilter() throws Exception {
+ SSLContext controlContext = SSLContext.getInstance("TLS");
+ controlContext.init(null, null, null);
+ SSLEngine controlEngine = controlContext.createSSLEngine();
+ SSLSocket controlSocket = (SSLSocket) controlContext.getSocketFactory().createSocket();
+ SSLServerSocket controlServerSocket = (SSLServerSocket) controlContext.getServerSocketFactory().createServerSocket();
+
+ // default
+ SSLContextParameters scp = new SSLContextParameters();
+
+ SSLContext context = scp.createSSLContext();
+
+ SSLEngine engine = context.createSSLEngine();
+ SSLSocket socket = (SSLSocket) context.getSocketFactory().createSocket();
+ SSLServerSocket serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // empty filter
+
+ FilterParameters filter = new FilterParameters();
+ scp.setSecureSocketProtocolsFilter(filter);
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledProtocols().length);
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // explicit filter
+
+ filter.getInclude().add(".*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(Arrays.equals(controlEngine.getEnabledProtocols(), engine.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlSocket.getEnabledProtocols(), socket.getEnabledProtocols()));
+ assertTrue(Arrays.equals(controlServerSocket.getEnabledProtocols(), serverSocket.getEnabledProtocols()));
+
+ // explicit filter with excludes (excludes overrides)
+ filter.getExclude().add(".*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertEquals(0, engine.getEnabledProtocols().length);
+ assertEquals(0, socket.getEnabledProtocols().length);
+ assertEquals(0, serverSocket.getEnabledProtocols().length);
+
+ // explicit filter single include
+
+ filter.getInclude().clear();
+ filter.getExclude().clear();
+ filter.getInclude().add("TLS.*");
+ context = scp.createSSLContext();
+ engine = context.createSSLEngine();
+ socket = (SSLSocket) context.getSocketFactory().createSocket();
+ serverSocket = (SSLServerSocket) context.getServerSocketFactory().createServerSocket();
+
+ assertTrue(engine.getEnabledProtocols().length >= 1);
+ assertStartsWith(engine.getEnabledProtocols(), "TLS");
+ assertTrue(socket.getEnabledProtocols().length >= 1);
+ assertStartsWith(socket.getEnabledProtocols(), "TLS");
+ assertTrue(socket.getEnabledProtocols().length >= 1);
+ assertStartsWith(serverSocket.getEnabledProtocols(), "TLS");
+ }
+
+ public void testSessionTimeout() throws Exception {
+ SSLContextParameters scp = new SSLContextParameters();
+ scp.setSessionTimeout(60);
+
+ SSLContext context = scp.createSSLContext();
+
+ assertEquals(60, context.getClientSessionContext().getSessionTimeout());
+ assertEquals(60, context.getServerSessionContext().getSessionTimeout());
+
+ scp.setSessionTimeout(0);
+
+ context = scp.createSSLContext();
+
+ assertEquals(0, context.getClientSessionContext().getSessionTimeout());
+ assertEquals(0, context.getServerSessionContext().getSessionTimeout());
+
+ }
+
+ public void testDefaultSecureSocketProtocol() throws Exception {
+ SSLContextParameters scp = new SSLContextParameters();
+
+ SSLContext context = scp.createSSLContext();
+
+ assertEquals("TLS", context.getProtocol());
+ }
+
+ public void testSecureSocketProtocol() throws Exception {
+ SSLContextParameters scp = new SSLContextParameters();
+ scp.setSecureSocketProtocol("SSLv3");
+
+ SSLContext context = scp.createSSLContext();
+
+ assertEquals("SSLv3", context.getProtocol());
+ }
+
+ public void testProvider() throws Exception {
+ SSLContextParameters scp = new SSLContextParameters();
+ scp.createSSLContext();
+
+ SSLContext context = scp.createSSLContext();
+
+ SSLContext defaultContext = SSLContext.getDefault();
+
+ assertEquals(defaultContext.getProvider().getName(), context.getProvider().getName());
+ }
+
+ protected String[] getDefaultCipherSuiteIncludes(String[] availableCipherSuites) {
+ List<String> enabled = new LinkedList<String>();
+
+ for (String string : availableCipherSuites) {
+ if (!string.contains("_anon_") && !string.contains("_NULL_")) {
+ enabled.add(string);
+ }
+ }
+
+ return enabled.toArray(new String[enabled.size()]);
+ }
+
+ protected void assertStartsWith(String[] values, String prefix) {
+ for (String value : values) {
+ assertTrue(value.startsWith(prefix));
+ }
+ }
+}
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SSLContextParametersTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,80 @@
+/**
+ * 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.util.jsse;
+
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+import java.security.SecureRandom;
+
+import junit.framework.TestCase;
+
+public class SecureRandomParametersTest extends TestCase {
+
+ public void testCreateSecureRandom() throws Exception {
+
+ if (this.canTest()) {
+ SecureRandomParameters srp = new SecureRandomParameters();
+ srp.setAlgorithm("SHA1PRNG");
+
+ SecureRandom sr = srp.createSecureRandom();
+ assertEquals("SHA1PRNG", sr.getAlgorithm());
+
+ String providerName = sr.getProvider().getName();
+ srp.setProvider(providerName);
+
+ sr = srp.createSecureRandom();
+ assertEquals("SHA1PRNG", sr.getAlgorithm());
+ assertEquals(providerName, sr.getProvider().getName());
+ }
+ }
+
+ public void testExplicitInvalidAlgorithm() throws Exception {
+ SecureRandomParameters srp = new SecureRandomParameters();
+ srp.setAlgorithm("fsafsadfasdfasdf");
+
+ try {
+ srp.createSecureRandom();
+ fail();
+ } catch (NoSuchAlgorithmException e) {
+ // expected
+ }
+ }
+
+ public void testExplicitInvalidProvider() throws Exception {
+ if (this.canTest()) {
+ SecureRandomParameters srp = new SecureRandomParameters();
+ srp.setAlgorithm("SHA1PRNG");
+ srp.setProvider("asdfsadfasdfasdf");
+
+ try {
+ srp.createSecureRandom();
+ fail();
+ } catch (NoSuchProviderException e) {
+ // expected
+ }
+ }
+ }
+
+ protected boolean canTest() {
+ try {
+ SecureRandom.getInstance("SHA1PRNG");
+ return true;
+ } catch (NoSuchAlgorithmException e) {
+ return false;
+ }
+ }
+}
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/SecureRandomParametersTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java (added)
+++ camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,101 @@
+/**
+ * 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.util.jsse;
+
+import java.security.NoSuchAlgorithmException;
+import java.security.NoSuchProviderException;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.X509TrustManager;
+
+import junit.framework.TestCase;
+
+public class TrustManagersParametersTest extends TestCase {
+
+ protected KeyStoreParameters createMinimalKeyStoreParameters() {
+ KeyStoreParameters ksp = new KeyStoreParameters();
+
+ ksp.setResource("org/apache/camel/util/jsse/localhost.ks");
+ ksp.setPassword("changeit");
+
+ return ksp;
+ }
+
+ protected TrustManagersParameters createMinimalTrustManagersParameters() {
+ TrustManagersParameters tmp = new TrustManagersParameters();
+ tmp.setKeyStore(this.createMinimalKeyStoreParameters());
+
+
+ return tmp;
+ }
+
+ public void testCreateTrustManagers() throws Exception {
+ TrustManagersParameters tmp = this.createMinimalTrustManagersParameters();
+
+ TrustManager[] tms = tmp.createTrustManagers();
+ validateTrustManagers(tms);
+ }
+
+ public void testExplicitAlgorithm() throws Exception {
+ TrustManagersParameters tmp = this.createMinimalTrustManagersParameters();
+ tmp.setAlgorithm(KeyManagerFactory.getDefaultAlgorithm());
+
+ TrustManager[] tms = tmp.createTrustManagers();
+ validateTrustManagers(tms);
+ }
+
+ public void testExplicitProvider() throws Exception {
+ TrustManagersParameters tmp = this.createMinimalTrustManagersParameters();
+ tmp.setProvider(KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm())
+ .getProvider().getName());
+
+ TrustManager[] tms = tmp.createTrustManagers();
+ validateTrustManagers(tms);
+ }
+
+ public void testInvalidExplicitAlgorithm() throws Exception {
+ TrustManagersParameters tmp = this.createMinimalTrustManagersParameters();
+ tmp.setAlgorithm("dsfsdfsdfdsfdsF");
+
+ try {
+ tmp.createTrustManagers();
+ fail();
+ } catch (NoSuchAlgorithmException e) {
+ // expected
+ }
+ }
+
+ public void testInvalidExplicitProvider() throws Exception {
+ TrustManagersParameters tmp = this.createMinimalTrustManagersParameters();
+ tmp.setProvider("dsfsdfsdfdsfdsF");
+
+ try {
+ tmp.createTrustManagers();
+ fail();
+ } catch (NoSuchProviderException e) {
+ // expected
+ }
+ }
+
+ protected void validateTrustManagers(TrustManager[] tms) {
+ assertEquals(1, tms.length);
+ assertTrue(tms[0] instanceof X509TrustManager);
+ X509TrustManager tm = (X509TrustManager) tms[0];
+ assertNotNull(tm.getAcceptedIssuers());
+ }
+}
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/camel-core/src/test/java/org/apache/camel/util/jsse/TrustManagersParametersTest.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/camel-core/src/test/resources/org/apache/camel/util/jsse/localhost.ks
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/test/resources/org/apache/camel/util/jsse/localhost.ks?rev=1096398&view=auto
==============================================================================
Binary file - no diff available.
Propchange: camel/trunk/camel-core/src/test/resources/org/apache/camel/util/jsse/localhost.ks
------------------------------------------------------------------------------
svn:mime-type = application/octet-stream
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,136 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.BaseSSLContextParameters;
+import org.apache.camel.util.jsse.CipherSuitesParameters;
+import org.apache.camel.util.jsse.FilterParameters;
+import org.apache.camel.util.jsse.SecureSocketProtocolsParameters;
+
+@XmlTransient
+public abstract class AbstractBaseSSLContextParametersFactoryBean<T extends BaseSSLContextParameters> extends AbstractJsseUtilFactoryBean<T> {
+
+ private CipherSuitesParametersDefinition cipherSuites;
+
+ private FilterParametersDefinition cipherSuitesFilter;
+
+ private SecureSocketProtocolsParametersDefinition secureSocketProtocols;
+
+ private FilterParametersDefinition secureSocketProtocolsFilter;
+
+ @XmlAttribute
+ private Integer sessionTimeout;
+
+ @XmlTransient
+ private T instance;
+
+ @Override
+ public final T getObject() throws Exception {
+ if (this.isSingleton()) {
+ if (instance == null) {
+ instance = createInstanceInternal();
+ }
+
+ return instance;
+ } else {
+ return createInstanceInternal();
+ }
+ }
+
+ protected abstract T createInstance() throws Exception;
+
+ private T createInstanceInternal() throws Exception {
+ T newInstance = createInstance();
+
+ if (cipherSuites != null) {
+ CipherSuitesParameters cipherSuitesInstance = new CipherSuitesParameters();
+ cipherSuitesInstance.getCipherSuite().addAll(cipherSuites.getCipherSuite());
+ newInstance.setCipherSuites(cipherSuitesInstance);
+ }
+
+ if (cipherSuitesFilter != null) {
+ newInstance.setCipherSuitesFilter(createFilterParameters(cipherSuitesFilter));
+ }
+
+ if (secureSocketProtocols != null) {
+ SecureSocketProtocolsParameters secureSocketProtocolsInstance = new SecureSocketProtocolsParameters();
+ secureSocketProtocolsInstance.getSecureSocketProtocol().addAll(secureSocketProtocols.getSecureSocketProtocol());
+ newInstance.setSecureSocketProtocols(secureSocketProtocolsInstance);
+ }
+
+ if (secureSocketProtocolsFilter != null) {
+ newInstance.setSecureSocketProtocolsFilter(createFilterParameters(secureSocketProtocolsFilter));
+ }
+
+ if (sessionTimeout != null) {
+ newInstance.setSessionTimeout(sessionTimeout);
+ }
+
+ return newInstance;
+ }
+
+ private FilterParameters createFilterParameters(FilterParametersDefinition definition) {
+ FilterParameters filter = new FilterParameters();
+ filter.getInclude().addAll(definition.getInclude());
+ filter.getExclude().addAll(definition.getExclude());
+
+ return filter;
+ }
+
+ public CipherSuitesParametersDefinition getCipherSuites() {
+ return cipherSuites;
+ }
+
+ public void setCipherSuites(CipherSuitesParametersDefinition cipherSuites) {
+ this.cipherSuites = cipherSuites;
+ }
+
+ public FilterParametersDefinition getCipherSuitesFilter() {
+ return cipherSuitesFilter;
+ }
+
+ public void setCipherSuitesFilter(FilterParametersDefinition cipherSuitesFilter) {
+ this.cipherSuitesFilter = cipherSuitesFilter;
+ }
+
+ public SecureSocketProtocolsParametersDefinition getSecureSocketProtocols() {
+ return secureSocketProtocols;
+ }
+
+ public void setSecureSocketProtocols(SecureSocketProtocolsParametersDefinition secureSocketProtocols) {
+ this.secureSocketProtocols = secureSocketProtocols;
+ }
+
+ public FilterParametersDefinition getSecureSocketProtocolsFilter() {
+ return secureSocketProtocolsFilter;
+ }
+
+ public void setSecureSocketProtocolsFilter(FilterParametersDefinition secureSocketProtocolsFilter) {
+ this.secureSocketProtocolsFilter = secureSocketProtocolsFilter;
+ }
+
+ public Integer getSessionTimeout() {
+ return sessionTimeout;
+ }
+
+ public void setSessionTimeout(Integer sessionTimeout) {
+ this.sessionTimeout = sessionTimeout;
+ }
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractBaseSSLContextParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,30 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import org.apache.camel.model.IdentifiedType;
+
+public abstract class AbstractJsseUtilFactoryBean<T> extends IdentifiedType {
+
+ public abstract T getObject() throws Exception;
+
+ public boolean isSingleton() {
+ return true;
+ }
+
+ public abstract Class<? extends T> getObjectType();
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractJsseUtilFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,101 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.net.ssl.KeyManager;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.KeyManagersParameters;
+
+/**
+ * A representation of configuration options for creating and loading
+ * {@link KeyManager} instance(s).
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+public abstract class AbstractKeyManagersParametersFactoryBean extends AbstractJsseUtilFactoryBean<KeyManagersParameters> {
+
+ @XmlAttribute
+ protected String keyPassword;
+
+ @XmlAttribute
+ protected String provider;
+
+ @XmlAttribute
+ protected String algorithm;
+
+ @XmlTransient
+ private KeyManagersParameters instance;
+
+ public String getKeyPassword() {
+ return keyPassword;
+ }
+
+ public void setKeyPassword(String value) {
+ this.keyPassword = value;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String value) {
+ this.provider = value;
+ }
+
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+ @Override
+ public KeyManagersParameters getObject() throws Exception {
+ if (this.isSingleton()) {
+ if (instance == null) {
+ instance = createInstance();
+ }
+
+ return instance;
+ } else {
+ return createInstance();
+ }
+ }
+
+ @Override
+ public Class<? extends KeyManagersParameters> getObjectType() {
+ return KeyManagersParameters.class;
+ }
+
+ protected KeyManagersParameters createInstance() throws Exception {
+ KeyManagersParameters newInstance = new KeyManagersParameters();
+
+ newInstance.setAlgorithm(algorithm);
+ newInstance.setKeyPassword(keyPassword);
+ if (getKeyStore() != null) {
+ newInstance.setKeyStore(getKeyStore().getObject());
+ }
+ newInstance.setProvider(provider);
+ return newInstance;
+ }
+
+ public abstract AbstractKeyStoreParametersFactoryBean getKeyStore();
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyManagersParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,105 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.KeyStoreParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+public abstract class AbstractKeyStoreParametersFactoryBean extends AbstractJsseUtilFactoryBean<KeyStoreParameters> {
+
+ @XmlAttribute
+ protected String type;
+
+ @XmlAttribute
+ protected String password;
+
+ @XmlAttribute
+ protected String provider;
+
+ @XmlAttribute
+ protected String resource;
+
+ @XmlTransient
+ private KeyStoreParameters instance;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String value) {
+ this.type = value;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+
+ public void setPassword(String value) {
+ this.password = value;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String value) {
+ this.provider = value;
+ }
+
+ public String getResource() {
+ return resource;
+ }
+
+ public void setResource(String value) {
+ this.resource = value;
+ }
+
+ @Override
+ public KeyStoreParameters getObject() throws Exception {
+ if (this.isSingleton()) {
+ if (instance == null) {
+ instance = createInstance();
+ }
+
+ return instance;
+ } else {
+ return createInstance();
+ }
+ }
+
+ protected KeyStoreParameters createInstance() {
+ KeyStoreParameters newInstance = new KeyStoreParameters();
+
+ newInstance.setPassword(this.password);
+ newInstance.setProvider(this.provider);
+ newInstance.setResource(this.resource);
+ newInstance.setType(this.type);
+
+ return newInstance;
+ }
+
+ @Override
+ public Class<? extends KeyStoreParameters> getObjectType() {
+ return KeyStoreParameters.class;
+ }
+
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractKeyStoreParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,38 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.SSLContextClientParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlTransient
+public abstract class AbstractSSLContextClientParametersFactoryBean extends AbstractBaseSSLContextParametersFactoryBean<SSLContextClientParameters> {
+
+ @Override
+ protected SSLContextClientParameters createInstance() {
+ return new SSLContextClientParameters();
+ }
+
+ @Override
+ public Class<SSLContextClientParameters> getObjectType() {
+ return SSLContextClientParameters.class;
+ }
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextClientParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,97 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.SSLContextParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlTransient
+public abstract class AbstractSSLContextParametersFactoryBean extends AbstractBaseSSLContextParametersFactoryBean<SSLContextParameters> {
+
+ @XmlAttribute
+ private String provider;
+
+ @XmlAttribute
+ private String secureSocketProtocol;
+
+ @Override
+ protected SSLContextParameters createInstance() throws Exception {
+ SSLContextParameters newInstance = new SSLContextParameters();
+
+ if (getKeyManagers() != null) {
+ newInstance.setKeyManagers(getKeyManagers().getObject());
+ }
+
+ if (getTrustManagers() != null) {
+ newInstance.setTrustManagers(getTrustManagers().getObject());
+ }
+
+ if (getSecureRandom() != null) {
+ newInstance.setSecureRandom(getSecureRandom().getObject());
+ }
+
+
+ if (getClientParameters() != null) {
+ newInstance.setClientParameters(getClientParameters().getObject());
+ }
+
+ if (getServerParameters() != null) {
+ newInstance.setServerParameters(getServerParameters().getObject());
+ }
+
+ newInstance.setProvider(provider);
+ newInstance.setSecureSocketProtocol(secureSocketProtocol);
+
+ return newInstance;
+ }
+
+ @Override
+ public Class<? extends SSLContextParameters> getObjectType() {
+ return SSLContextParameters.class;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String provider) {
+ this.provider = provider;
+ }
+
+ public String getSecureSocketProtocol() {
+ return secureSocketProtocol;
+ }
+
+ public void setSecureSocketProtocol(String secureSocketProtocol) {
+ this.secureSocketProtocol = secureSocketProtocol;
+ }
+
+ protected abstract AbstractKeyManagersParametersFactoryBean getKeyManagers();
+
+ protected abstract AbstractTrustManagersParametersFactoryBean getTrustManagers();
+
+ protected abstract AbstractSecureRandomParametersFactoryBean getSecureRandom();
+
+ protected abstract AbstractSSLContextClientParametersFactoryBean getClientParameters();
+
+ protected abstract AbstractSSLContextServerParametersFactoryBean getServerParameters();
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,58 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.ClientAuthentication;
+import org.apache.camel.util.jsse.SSLContextServerParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlTransient
+public abstract class AbstractSSLContextServerParametersFactoryBean extends AbstractBaseSSLContextParametersFactoryBean<SSLContextServerParameters> {
+
+ @XmlAttribute
+ protected ClientAuthenticationDefinition clientAuthentication;
+
+ public ClientAuthenticationDefinition getClientAuthentication() {
+ return clientAuthentication;
+ }
+
+ public void setClientAuthentication(ClientAuthenticationDefinition clientAuthentication) {
+ this.clientAuthentication = clientAuthentication;
+ }
+
+ @Override
+ protected SSLContextServerParameters createInstance() {
+ SSLContextServerParameters newInstance = new SSLContextServerParameters();
+
+ if (clientAuthentication != null) {
+ ClientAuthentication clientAuthenticationInstance = ClientAuthentication.valueOf(clientAuthentication.name());
+ newInstance.setClientAuthentication(clientAuthenticationInstance);
+ }
+
+ return newInstance;
+ }
+
+ @Override
+ public Class<SSLContextServerParameters> getObjectType() {
+ return SSLContextServerParameters.class;
+ }
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSSLContextServerParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,80 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.SecureRandomParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+public abstract class AbstractSecureRandomParametersFactoryBean extends AbstractJsseUtilFactoryBean<SecureRandomParameters> {
+
+ @XmlAttribute(required = true)
+ protected String algorithm;
+
+ @XmlAttribute
+ protected String provider;
+
+ @XmlTransient
+ private SecureRandomParameters instance;
+
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ public void setAlgorithm(String algorithm) {
+ this.algorithm = algorithm;
+ }
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String provider) {
+ this.provider = provider;
+ }
+
+ @Override
+ public SecureRandomParameters getObject() throws Exception {
+ if (this.isSingleton()) {
+ if (instance == null) {
+ instance = createInstance();
+ }
+
+ return instance;
+ } else {
+ return createInstance();
+ }
+ }
+
+ protected SecureRandomParameters createInstance() {
+ SecureRandomParameters newInstance = new SecureRandomParameters();
+
+ newInstance.setAlgorithm(algorithm);
+ newInstance.setProvider(provider);
+
+ return newInstance;
+ }
+
+ @Override
+ public Class<? extends SecureRandomParameters> getObjectType() {
+ return SecureRandomParameters.class;
+ }
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractSecureRandomParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,84 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlTransient;
+
+import org.apache.camel.util.jsse.TrustManagersParameters;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+public abstract class AbstractTrustManagersParametersFactoryBean extends AbstractJsseUtilFactoryBean<TrustManagersParameters> {
+
+ @XmlAttribute
+ protected String provider;
+
+ @XmlAttribute
+ protected String algorithm;
+
+ @XmlTransient
+ private TrustManagersParameters instance;
+
+ public String getProvider() {
+ return provider;
+ }
+
+ public void setProvider(String value) {
+ this.provider = value;
+ }
+
+ public String getAlgorithm() {
+ return algorithm;
+ }
+
+ public void setAlgorithm(String value) {
+ this.algorithm = value;
+ }
+
+ @Override
+ public TrustManagersParameters getObject() throws Exception {
+ if (this.isSingleton()) {
+ if (instance == null) {
+ instance = createInstance();
+ }
+
+ return instance;
+ } else {
+ return createInstance();
+ }
+ }
+
+ @Override
+ public Class<TrustManagersParameters> getObjectType() {
+ return TrustManagersParameters.class;
+ }
+
+ protected TrustManagersParameters createInstance() throws Exception {
+ TrustManagersParameters newInstance = new TrustManagersParameters();
+
+ newInstance.setAlgorithm(algorithm);
+ if (getKeyStore() != null) {
+ newInstance.setKeyStore(getKeyStore().getObject());
+ }
+ newInstance.setProvider(provider);
+ return newInstance;
+ }
+
+ protected abstract AbstractKeyStoreParametersFactoryBean getKeyStore();
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/AbstractTrustManagersParametersFactoryBean.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,42 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import java.util.ArrayList;
+import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "cipherSuitesParameters", propOrder = {"cipherSuite"})
+public class CipherSuitesParametersDefinition {
+
+ private List<String> cipherSuite;
+
+ /**
+ * Returns a live reference to the list of cipher suite names.
+ *
+ * @return a reference to the list, never {@code null}
+ */
+ public List<String> getCipherSuite() {
+ if (this.cipherSuite == null) {
+ this.cipherSuite = new ArrayList<String>();
+ }
+ return this.cipherSuite;
+ }
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/CipherSuitesParametersDefinition.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,41 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import javax.xml.bind.annotation.XmlEnum;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Represents the options for the client authentication settings of a server socket.
+ */
+@XmlEnum(value = String.class)
+@XmlType(name = "clientAuthenticationParameters")
+public enum ClientAuthenticationDefinition {
+
+ /**
+ * No client authentication required or requested.
+ */
+ NONE,
+ /**
+ * Client authentication requested.
+ */
+ WANT,
+ /**
+ * Client authentication required.
+ */
+ REQUIRE;
+}
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/ClientAuthenticationDefinition.java
------------------------------------------------------------------------------
svn:keywords = Rev Date
Added: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/FilterParametersDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/FilterParametersDefinition.java?rev=1096398&view=auto
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/FilterParametersDefinition.java (added)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/util/jsse/FilterParametersDefinition.java Mon Apr 25 02:52:44 2011
@@ -0,0 +1,62 @@
+/**
+ * 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.core.xml.util.jsse;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlType;
+
+/**
+ * Represents a set of regular expression based filter patterns for
+ * including and excluding content of some type.
+ */
+@XmlAccessorType(XmlAccessType.FIELD)
+@XmlType(name = "filterParameters", propOrder = {"include", "exclude"})
+public class FilterParametersDefinition {
+
+ protected List<String> include;
+ protected List<String> exclude;
+
+ /**
+ * Returns a live copy of the list of patterns to include.
+ * The list of excludes takes precedence over the include patterns.
+ *
+ * @return the list of patterns to include
+ */
+ public List<String> getInclude() {
+ if (this.include == null) {
+ this.include = new ArrayList<String>();
+ }
+ return this.include;
+ }
+
+ /**
+ * Returns a live copy of the list of patterns to exclude.
+ * This list takes precedence over the include patterns.
+ *
+ * @return the list of patterns to exclude
+ */
+ public List<String> getExclude() {
+ if (exclude == null) {
+ exclude = new ArrayList<String>();
+ }
+ return this.exclude;
+ }
+}