Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.apache.camel.CamelExecutionException;
- import org.apache.camel.builder.RouteBuilder;
- import org.apache.camel.impl.JndiRegistry;
- 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;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public class HttpsTest extends CamelTestSupport {
- private static final Logger LOG = LoggerFactory.getLogger(HttpsTest.class);
- @Override
- protected JndiRegistry createRegistry() throws Exception {
- 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);
- JndiRegistry registry = super.createRegistry();
- registry.bind("sslContextParameters", sslContextParameters);
- return registry;
- }
- // this will utilize the truststore we defined in sslContextParameters bean to access the HTTPS endpoint
- @Test
- public void testHttps() throws Exception {
- String reply = template.requestBody("jetty:https://0.0.0.0:6060/early?sslContextParametersRef=sslContextParameters", "Hi Camel!", String.class);
- assertEquals("Hi", reply);
- }
- // we didn't provide any truststore information so the server won't let us connect
- @Test(expected = CamelExecutionException.class)
- public void testHttpsNoTruststore() throws Exception {
- String reply = template.requestBody("jetty:https://0.0.0.0:6060/early", "Hi Camel!", String.class);
- assertEquals("Hi", reply);
- }
- @Override
- protected RouteBuilder createRouteBuilder() throws Exception {
- return new RouteBuilder() {
- @Override
- public void configure() throws Exception {
- LOG.info("sslContextParameters =======>" +getContext().getRegistry().lookupByName("sslContextParameters"));
- from("jetty:https://0.0.0.0:6060/early?sslContextParametersRef=sslContextParameters")
- .transform().constant("Hi");
- }
- };
- }
- import org.apache.camel.main.Main;
- 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.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public class RestStatusServer {
- private static final Logger LOG = LoggerFactory.getLogger(RestStatusServer.class);
- public static void main(String[] args) throws Exception {
- StatusRoute route = new StatusRoute();
- Main main = new Main();
- KeyStoreParameters ksp = new KeyStoreParameters();
- ksp.setResource("./cia_keystore.jks");
- ksp.setPassword("supersecret");
- ksp.setType("JKS");
- KeyManagersParameters kmp = new KeyManagersParameters();
- kmp.setKeyPassword("secret");
- kmp.setKeyStore(ksp);
- KeyStoreParameters tsp = new KeyStoreParameters();
- tsp.setResource("./cia_truststore.jks");
- tsp.setPassword("supersecret");
- tsp.setType("JKS");
- TrustManagersParameters tmp = new TrustManagersParameters();
- tmp.setKeyStore(tsp);
- SSLContextParameters sslContextParameters = new SSLContextParameters();
- sslContextParameters.setKeyManagers(kmp);
- sslContextParameters.setTrustManagers(tmp);
- main.bind("sslContextParameters", sslContextParameters);
- main.addRouteBuilder(route);
- main.run();
- }
- import com.db.cib.eip.rest.StatusConfirmationRequest;
- import org.apache.camel.Exchange;
- import org.apache.camel.Processor;
- import org.apache.camel.builder.RouteBuilder;
- import org.apache.camel.component.properties.PropertiesComponent;
- import org.apache.camel.model.dataformat.JsonLibrary;
- import org.apache.camel.spi.CamelContextNameStrategy;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- public class StatusRoute extends RouteBuilder {
- private static final Logger LOG = LoggerFactory.getLogger(StatusRoute.class);
- @Override
- public void configure() throws Exception {
- // enable Jackson json type converter
- CamelContextNameStrategy strategy = new CamelContextNameStrategy() {
- @Override
- public String getName() {
- return "PaymentTransactionStatusUpdateContext";
- }
- @Override
- public String getNextName() {
- return getName();
- }
- @Override
- public boolean isFixedName() {
- return true;
- }
- };
- getContext().setNameStrategy(strategy);
- getContext().getProperties().put("CamelJacksonEnableTypeConverter", "true");
- // allow Jackson json to convert to pojo types also
- getContext().getProperties().put("CamelJacksonTypeConverterToPojo", "true");
- LOG.info("sslContextParameters =======>" +getContext().getRegistry().lookupByName("sslContextParameters"));
- PropertiesComponent propertiesComponent = getContext().getComponent("properties", PropertiesComponent.class);
- propertiesComponent.setLocation("classpath:update.properties");
- from("jetty:https://localhost:9001/updateStatus?sslContextParametersRef=sslContextParameters")
- .process(new Processor() {
- public void process(Exchange exchange) throws Exception {
- String body = exchange.getIn().getBody(String.class);
- LOG.info("body" + body);
- if (body.indexOf("{") == -1) {
- throw new Exception("Inproperly formatted JSON: " + body);
- }
- exchange.getOut().setBody(body);
- }
- })
- .bean(StatusConfirmationRequest.class, "copy(${body})")
- .to("direct:request").routeId("receive restful call")
- .routeId(" Main route: receiving restfull call ");
- from("direct:request")
- .to("log:?level=INFO&showBody=true")
- .marshal().json(JsonLibrary.Jackson)
- .to("log:com.db.cil?level=DEBUG&groupSize=10");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement