package camelinaction; import org.apache.camel.CamelContext; import org.apache.camel.SSLContextParametersAware; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.test.junit4.CamelTestSupport; import org.apache.camel.util.jsse.KeyManagersParameters; import org.apache.camel.util.jsse.KeyStoreParameters; import org.apache.camel.util.jsse.SSLContextParameters; import org.apache.camel.util.jsse.TrustManagersParameters; import org.junit.Test; public class GlobalSSLContextParametersTest extends CamelTestSupport { protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); context.setSSLContextParameters(createSSLContextParameters()); ((SSLContextParametersAware) context.getComponent("jetty")).setUseGlobalSslContextParameters(true); return context; } private SSLContextParameters createSSLContextParameters() { KeyStoreParameters ksp = new KeyStoreParameters(); ksp.setResource("./cia_keystore.jks"); ksp.setPassword("supersecret"); KeyManagersParameters kmp = new KeyManagersParameters(); kmp.setKeyPassword("secret"); kmp.setKeyStore(ksp); KeyStoreParameters tsp = new KeyStoreParameters(); tsp.setResource("./cia_truststore.jks"); tsp.setPassword("supersecret"); TrustManagersParameters tmp = new TrustManagersParameters(); tmp.setKeyStore(tsp); SSLContextParameters sslContextParameters = new SSLContextParameters(); sslContextParameters.setKeyManagers(kmp); sslContextParameters.setTrustManagers(tmp); return sslContextParameters; } // this will utilize the truststore we defined globally using setUseGlobalSslContextParameters to access the HTTPS endpoint @Test public void testHttps() throws Exception { String reply = template.requestBody("jetty:https://localhost:8080/early", "Hi Camel!", String.class); assertEquals("Hi", reply); } @Override protected RouteBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @Override public void configure() throws Exception { from("jetty:https://localhost:8080/early") .transform().constant("Hi"); } }; } }