Merge pull request #4 from mgeiss/develop

refactored microservice start
diff --git a/src/main/java/io/mifos/dev/ServiceRunner.java b/src/main/java/io/mifos/dev/ServiceRunner.java
index 48fd28a..fb85f14 100644
--- a/src/main/java/io/mifos/dev/ServiceRunner.java
+++ b/src/main/java/io/mifos/dev/ServiceRunner.java
@@ -71,6 +71,7 @@
 import java.security.PublicKey;
 import java.util.Arrays;
 import java.util.Collections;
+import java.util.Properties;
 import java.util.Scanner;
 import java.util.concurrent.TimeUnit;
 
@@ -143,11 +144,18 @@
     ServiceRunner.provisionerService.start();
     ServiceRunner.provisionerService.setApiFactory(apiFactory);
 
-    ServiceRunner.identityService = this.startService(IdentityManager.class, "identity");
-    ServiceRunner.officeClient = this.startService(OrganizationManager.class, "office");
-    ServiceRunner.customerClient = this.startService(CustomerManager.class, "customer");
-    ServiceRunner.accountingClient = this.startService(LedgerManager.class, "accounting");
-    ServiceRunner.portfolioClient = this.startService(PortfolioManager.class, "portfolio");
+    final Properties generalProperties = new Properties();
+    generalProperties.setProperty("server.max-http-header-size", Integer.toString(16 * 1024));
+    generalProperties.setProperty("spring.security.strategy", "MODE_INHERITABLETHREADLOCAL");
+
+    final Properties identityProperties = new Properties(generalProperties);
+    identityProperties.setProperty("identity.token.refresh.secureCookie", "false");
+
+    ServiceRunner.identityService = this.startService(IdentityManager.class, "identity", identityProperties);
+    ServiceRunner.officeClient = this.startService(OrganizationManager.class, "office", generalProperties);
+    ServiceRunner.customerClient = this.startService(CustomerManager.class, "customer", generalProperties);
+    ServiceRunner.accountingClient = this.startService(LedgerManager.class, "accounting", generalProperties);
+    ServiceRunner.portfolioClient = this.startService(PortfolioManager.class, "portfolio", generalProperties);
   }
 
   @After
@@ -167,7 +175,6 @@
   @Test
   public void startDevServer() throws Exception {
     this.createAdmin(this.provisionAppsViaSeshat());
-
     System.out.println("Identity Service: " + ServiceRunner.identityService.getProcessEnvironment().serverURI());
     System.out.println("Office Service: " + ServiceRunner.officeClient.getProcessEnvironment().serverURI());
     System.out.println("Customer Service: " + ServiceRunner.customerClient.getProcessEnvironment().serverURI());
@@ -194,9 +201,13 @@
         .build();
   }
 
-  private <T> Microservice<T> startService(final Class<T> serviceClass, final String serviceName) throws Exception {
+  private <T> Microservice<T> startService(final Class<T> serviceClass, final String serviceName, final Properties properties) throws Exception {
     final Microservice<T> microservice = new Microservice<>(serviceClass, serviceName, "0.1.0-BUILD-SNAPSHOT", ServiceRunner.INTEGRATION_TEST_ENVIRONMENT);
-    microservice.getProcessEnvironment().setProperty("server.max-http-header-size", Integer.toString(16 * 1024));
+    if (properties !=null) {
+      properties.forEach((key, value) -> {
+        microservice.getProcessEnvironment().setProperty(key.toString(), value.toString());
+      });
+    }
     microservice.start();
     microservice.setApiFactory(this.apiFactory);
     return microservice;