Advertisement
Guest User

Untitled

a guest
Feb 21st, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.41 KB | None | 0 0
  1. import org.apache.camel.CamelExecutionException;
  2. import org.apache.camel.builder.RouteBuilder;
  3. import org.apache.camel.impl.JndiRegistry;
  4. import org.apache.camel.test.junit4.CamelTestSupport;
  5. import org.apache.camel.util.jsse.KeyManagersParameters;
  6. import org.apache.camel.util.jsse.KeyStoreParameters;
  7. import org.apache.camel.util.jsse.SSLContextParameters;
  8. import org.apache.camel.util.jsse.TrustManagersParameters;
  9. import org.junit.Test;
  10. import org.slf4j.Logger;
  11. import org.slf4j.LoggerFactory;
  12.  
  13. public class HttpsTest extends CamelTestSupport {
  14.  
  15. private static final Logger LOG = LoggerFactory.getLogger(HttpsTest.class);
  16. @Override
  17. protected JndiRegistry createRegistry() throws Exception {
  18. KeyStoreParameters ksp = new KeyStoreParameters();
  19. ksp.setResource("cia_keystore.jks");
  20. ksp.setPassword("supersecret");
  21. KeyManagersParameters kmp = new KeyManagersParameters();
  22. kmp.setKeyPassword("secret");
  23. kmp.setKeyStore(ksp);
  24.  
  25. KeyStoreParameters tsp = new KeyStoreParameters();
  26. tsp.setResource("cia_truststore.jks");
  27. tsp.setPassword("supersecret");
  28. TrustManagersParameters tmp = new TrustManagersParameters();
  29. tmp.setKeyStore(tsp);
  30.  
  31. SSLContextParameters sslContextParameters = new SSLContextParameters();
  32. sslContextParameters.setKeyManagers(kmp);
  33. sslContextParameters.setTrustManagers(tmp);
  34.  
  35. JndiRegistry registry = super.createRegistry();
  36. registry.bind("sslContextParameters", sslContextParameters);
  37.  
  38. return registry;
  39. }
  40.  
  41. // this will utilize the truststore we defined in sslContextParameters bean to access the HTTPS endpoint
  42. @Test
  43. public void testHttps() throws Exception {
  44.  
  45. String reply = template.requestBody("jetty:https://0.0.0.0:6060/early?sslContextParametersRef=sslContextParameters", "Hi Camel!", String.class);
  46. assertEquals("Hi", reply);
  47. }
  48.  
  49. // we didn't provide any truststore information so the server won't let us connect
  50. @Test(expected = CamelExecutionException.class)
  51. public void testHttpsNoTruststore() throws Exception {
  52. String reply = template.requestBody("jetty:https://0.0.0.0:6060/early", "Hi Camel!", String.class);
  53. assertEquals("Hi", reply);
  54. }
  55.  
  56. @Override
  57. protected RouteBuilder createRouteBuilder() throws Exception {
  58. return new RouteBuilder() {
  59. @Override
  60. public void configure() throws Exception {
  61. LOG.info("sslContextParameters =======>" +getContext().getRegistry().lookupByName("sslContextParameters"));
  62. from("jetty:https://0.0.0.0:6060/early?sslContextParametersRef=sslContextParameters")
  63. .transform().constant("Hi");
  64. }
  65. };
  66. }
  67.  
  68. import org.apache.camel.main.Main;
  69. import org.apache.camel.util.jsse.KeyManagersParameters;
  70. import org.apache.camel.util.jsse.KeyStoreParameters;
  71. import org.apache.camel.util.jsse.SSLContextParameters;
  72. import org.apache.camel.util.jsse.TrustManagersParameters;
  73. import org.slf4j.Logger;
  74. import org.slf4j.LoggerFactory;
  75.  
  76.  
  77. public class RestStatusServer {
  78.  
  79. private static final Logger LOG = LoggerFactory.getLogger(RestStatusServer.class);
  80.  
  81. public static void main(String[] args) throws Exception {
  82.  
  83. StatusRoute route = new StatusRoute();
  84. Main main = new Main();
  85. KeyStoreParameters ksp = new KeyStoreParameters();
  86. ksp.setResource("./cia_keystore.jks");
  87. ksp.setPassword("supersecret");
  88. ksp.setType("JKS");
  89. KeyManagersParameters kmp = new KeyManagersParameters();
  90. kmp.setKeyPassword("secret");
  91. kmp.setKeyStore(ksp);
  92.  
  93. KeyStoreParameters tsp = new KeyStoreParameters();
  94. tsp.setResource("./cia_truststore.jks");
  95. tsp.setPassword("supersecret");
  96. tsp.setType("JKS");
  97. TrustManagersParameters tmp = new TrustManagersParameters();
  98. tmp.setKeyStore(tsp);
  99.  
  100. SSLContextParameters sslContextParameters = new SSLContextParameters();
  101. sslContextParameters.setKeyManagers(kmp);
  102. sslContextParameters.setTrustManagers(tmp);
  103. main.bind("sslContextParameters", sslContextParameters);
  104. main.addRouteBuilder(route);
  105. main.run();
  106. }
  107.  
  108. import com.db.cib.eip.rest.StatusConfirmationRequest;
  109. import org.apache.camel.Exchange;
  110. import org.apache.camel.Processor;
  111. import org.apache.camel.builder.RouteBuilder;
  112. import org.apache.camel.component.properties.PropertiesComponent;
  113. import org.apache.camel.model.dataformat.JsonLibrary;
  114. import org.apache.camel.spi.CamelContextNameStrategy;
  115. import org.slf4j.Logger;
  116. import org.slf4j.LoggerFactory;
  117.  
  118. public class StatusRoute extends RouteBuilder {
  119.  
  120. private static final Logger LOG = LoggerFactory.getLogger(StatusRoute.class);
  121.  
  122. @Override
  123. public void configure() throws Exception {
  124. // enable Jackson json type converter
  125. CamelContextNameStrategy strategy = new CamelContextNameStrategy() {
  126. @Override
  127. public String getName() {
  128. return "PaymentTransactionStatusUpdateContext";
  129. }
  130.  
  131. @Override
  132. public String getNextName() {
  133. return getName();
  134. }
  135.  
  136. @Override
  137. public boolean isFixedName() {
  138. return true;
  139. }
  140.  
  141. };
  142. getContext().setNameStrategy(strategy);
  143. getContext().getProperties().put("CamelJacksonEnableTypeConverter", "true");
  144. // allow Jackson json to convert to pojo types also
  145. getContext().getProperties().put("CamelJacksonTypeConverterToPojo", "true");
  146. LOG.info("sslContextParameters =======>" +getContext().getRegistry().lookupByName("sslContextParameters"));
  147. PropertiesComponent propertiesComponent = getContext().getComponent("properties", PropertiesComponent.class);
  148. propertiesComponent.setLocation("classpath:update.properties");
  149. from("jetty:https://localhost:9001/updateStatus?sslContextParametersRef=sslContextParameters")
  150. .process(new Processor() {
  151. public void process(Exchange exchange) throws Exception {
  152. String body = exchange.getIn().getBody(String.class);
  153. LOG.info("body" + body);
  154. if (body.indexOf("{") == -1) {
  155. throw new Exception("Inproperly formatted JSON: " + body);
  156. }
  157. exchange.getOut().setBody(body);
  158. }
  159.  
  160. })
  161. .bean(StatusConfirmationRequest.class, "copy(${body})")
  162. .to("direct:request").routeId("receive restful call")
  163. .routeId(" Main route: receiving restfull call ");
  164.  
  165. from("direct:request")
  166. .to("log:?level=INFO&showBody=true")
  167. .marshal().json(JsonLibrary.Jackson)
  168. .to("log:com.db.cil?level=DEBUG&groupSize=10");
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement