Merge pull request #1 from mgeiss/develop

added DelegatingSecurityContextAsyncTaskExecutor to delegate
diff --git a/build.gradle b/build.gradle
index 7436af0..59040c4 100644
--- a/build.gradle
+++ b/build.gradle
@@ -16,6 +16,7 @@
 
 ext.versions = [
         springcontext        : '4.3.3.RELEASE',
+        springsecurity       : '4.2.2.RELEASE',
         springboot           : '1.4.1.RELEASE',
         findbugs             : '3.0.1',
 ]
@@ -40,6 +41,7 @@
 dependencies {
     compile(
             [group: 'org.springframework', name: 'spring-context', version: versions.springcontext],
+            [group: 'org.springframework.security', name: 'spring-security-web', version: versions.springsecurity],
             [group: 'com.google.code.findbugs', name: 'jsr305', version: versions.findbugs]
     )
 
diff --git a/src/main/java/io/mifos/core/async/config/AsyncProcessingJavaConfiguration.java b/src/main/java/io/mifos/core/async/config/AsyncProcessingJavaConfiguration.java
index 32e7d68..1b966c0 100644
--- a/src/main/java/io/mifos/core/async/config/AsyncProcessingJavaConfiguration.java
+++ b/src/main/java/io/mifos/core/async/config/AsyncProcessingJavaConfiguration.java
@@ -24,6 +24,7 @@
 import org.springframework.scheduling.annotation.AsyncConfigurer;
 import org.springframework.scheduling.annotation.EnableAsync;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
+import org.springframework.security.task.DelegatingSecurityContextAsyncTaskExecutor;
 
 import java.util.concurrent.Executor;
 
@@ -52,7 +53,7 @@
     executor.setThreadNamePrefix(
         this.env.getProperty(AsyncConstants.THREAD_NAME_PROP, AsyncConstants.THREAD_NAME_DEFAULT));
     executor.initialize();
-    return executor;
+    return new DelegatingSecurityContextAsyncTaskExecutor(executor);
   }
 
   @Override