diff --git a/docker/config/application.tmpl b/docker/config/application.tmpl
index 0bb7a48b55bd4ed43ad949ff05f6f9b56497ad79..f6ae1e3de32f0fa9289c5b65cffbb9338009c0e0 100644
--- a/docker/config/application.tmpl
+++ b/docker/config/application.tmpl
@@ -92,5 +92,4 @@ services:
     algorithmsUrl: {{ default .Env.EXAREME_URL "http://localhost:9090" }}/mining/algorithms.json
   workflows:
     workflowUrl: {{ default .Env.WORKFLOW_URL "http://localhost:9090" }}
-    workflowAuthorization: {{ default .Env.WORKFLOW_AUTHORIZATION "undefined" }}
-    JWTSecret: {{ default .Env.JWT_SECRET "secret" }}
+    jwtSecret: {{ default .Env.JWT_SECRET "secret" }}
diff --git a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
index 3035889605e555189c2c2ff93eba40ccaa820a10..5646b1075e45bbe69f15c1ee617363466503aa09 100644
--- a/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/ExperimentApi.java
@@ -24,6 +24,7 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 import scala.concurrent.ExecutionContext;
 import scala.concurrent.Future;
+import eu.hbp.mip.utils.JWTUtil;
 
 import java.io.IOException;
 import java.util.*;
@@ -50,8 +51,8 @@ public class ExperimentApi {
     @Value("#{'${services.workflows.workflowUrl}'}")
     private String workflowUrl;
 
-    @Value("#{'${services.workflows.workflowAuthorization}'}")
-    private String workflowAuthorization;
+    @Value("#{'${services.workflows.jwtSecret}'}")
+    private String jwtSecret;
 
     @Autowired
     private UserInfo userInfo;
@@ -62,8 +63,6 @@ public class ExperimentApi {
     @Autowired
     private ExperimentRepository experimentRepository;
 
-
-
     @ApiOperation(value = "Create an experiment on Exareme", response = Experiment.class)
     @RequestMapping(value = "/exareme", method = RequestMethod.POST)
     public ResponseEntity<String> runExaremeExperiment(@RequestBody ExperimentQuery expQuery) {
@@ -124,21 +123,18 @@ public class ExperimentApi {
             }
 
             String query = gson.toJson(queryMap);
-            LOGGER.info("****************************** query");
-            LOGGER.info(query);
             String url = workflowUrl + "/runWorkflow/" + algoCode;
             // Results are stored in the experiment object
             try {
                 StringBuilder results = new StringBuilder();
-                int code = HTTPUtil.sendAuthorizedHTTP(url, query, results, "POST", workflowAuthorization);
+                User user = userInfo.getUser();
+                String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
+                int code = HTTPUtil.sendAuthorizedHTTP(url, query, results, "POST", "Bearer " + token);
                 experiment.setResult("[" + results.toString() + "]");
-                LOGGER.info("****************************** results");
-                LOGGER.info(results.toString());
                 experiment.setHasError(code >= 400);
                 experiment.setHasServerError(code >= 500);
             } catch (IOException e) {
                 LOGGER.trace("Invalid UUID", e);
-                LOGGER.warn("Workflow failed to run properly !");
                 experiment.setHasError(true);
                 experiment.setHasServerError(true);
                 experiment.setResult(e.getMessage());
@@ -182,8 +178,10 @@ public class ExperimentApi {
 
         String url = workflowUrl + "/getWorkflowStatus/" + historyId;
         try {
+            User user = userInfo.getUser();
+            String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
             StringBuilder response = new StringBuilder();
-            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", workflowAuthorization);
+            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", "Bearer " + token);
             JsonElement element = new JsonParser().parse(response.toString());
 
             return ResponseEntity.ok(gson.toJson(element));
@@ -202,7 +200,9 @@ public class ExperimentApi {
         String url = workflowUrl + "/getWorkflowResults/" + historyId;
         try {
             StringBuilder response = new StringBuilder();
-            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", workflowAuthorization);
+            User user = userInfo.getUser();
+            String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
+            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", "Bearer " + token);
             JsonElement element = new JsonParser().parse(response.toString());
 
             return ResponseEntity.ok(gson.toJson(element));
@@ -221,7 +221,9 @@ public class ExperimentApi {
         String url = workflowUrl + "/getWorkflowResultsBody/" + historyId + "/contents/" + resultId;
         try {
             StringBuilder response = new StringBuilder();
-            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", workflowAuthorization);
+            User user = userInfo.getUser();
+            String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
+            HTTPUtil.sendAuthorizedHTTP(url, "", response, "GET", "Bearer " + token);
             JsonElement element = new JsonParser().parse(response.toString());
 
             return ResponseEntity.ok(gson.toJson(element));
diff --git a/src/main/java/eu/hbp/mip/controllers/JWTApi.java b/src/main/java/eu/hbp/mip/controllers/JWTApi.java
index bdc7b7bce218c4d956046be84571249188bee0aa..4118a8c54464c575fa1c4f187dc7ca050e1ce564 100644
--- a/src/main/java/eu/hbp/mip/controllers/JWTApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/JWTApi.java
@@ -5,8 +5,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.http.ResponseEntity;
 import org.springframework.http.HttpStatus;
-import com.auth0.jwt.algorithms.Algorithm;
-import com.auth0.jwt.JWT;
 import eu.hbp.mip.model.User;
 import eu.hbp.mip.model.UserInfo;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -14,6 +12,7 @@ import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import eu.hbp.mip.utils.JWTUtil;
 
 @RestController
 @RequestMapping(value = "/jwt", produces = { TEXT_PLAIN_VALUE })
@@ -25,8 +24,8 @@ public class JWTApi {
     @Autowired
     private UserInfo userInfo;
 
-    @Value("#{'${services.workflows.JWTSecret}'}")
-    private String JWTSecret;
+    @Value("#{'${services.workflows.jwtSecret}'}")
+    private String jwtSecret;
 
     @ApiOperation(value = "Create a JSON Web Token", response = String.class)
     @RequestMapping(method = RequestMethod.POST)
@@ -35,12 +34,7 @@ public class JWTApi {
         LOGGER.info("Create a JSON Web Token");
 
         User user = userInfo.getUser();
-
-        Algorithm algorithm = Algorithm.HMAC512(JWTSecret);
-        String token = JWT.create().withIssuer("mip.humanbrainproject.eu").withSubject(user.getEmail()).sign(algorithm);
-
-        LOGGER.info(algorithm.toString());
-        LOGGER.info(token);
+        String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
 
         return ResponseEntity.status(HttpStatus.CREATED).body(token);
     }
diff --git a/src/main/java/eu/hbp/mip/controllers/MethodsApi.java b/src/main/java/eu/hbp/mip/controllers/MethodsApi.java
index 10f1e2276931dcc137c02f31cbf5a2aa3f01549b..7d6062a771ac5bcef6d470a67f1a6a9ae27d4040 100644
--- a/src/main/java/eu/hbp/mip/controllers/MethodsApi.java
+++ b/src/main/java/eu/hbp/mip/controllers/MethodsApi.java
@@ -1,9 +1,6 @@
 package eu.hbp.mip.controllers;
 
 import com.google.gson.*;
-
-import ch.chuv.lren.woken.messages.query.MethodsQuery$;
-import ch.chuv.lren.woken.messages.query.MethodsResponse;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -11,12 +8,14 @@ import org.slf4j.LoggerFactory;
 import org.springframework.cache.annotation.Cacheable;
 import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
-
+import eu.hbp.mip.model.User;
+import eu.hbp.mip.model.UserInfo;
 import eu.hbp.mip.utils.HTTPUtil;
 import org.springframework.beans.factory.annotation.Value;
 import java.io.IOException;
-
+import eu.hbp.mip.utils.JWTUtil;
 import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
+import org.springframework.beans.factory.annotation.Autowired;
 
 @RestController
 @RequestMapping(value = "/methods", produces = { APPLICATION_JSON_VALUE })
@@ -33,8 +32,11 @@ public class MethodsApi {
     @Value("#{'${services.workflows.workflowUrl}'}")
     private String workflowUrl;
 
-    @Value("#{'${services.workflows.workflowAuthorization}'}")
-    private String workflowAuthorization;
+    @Value("#{'${services.workflows.jwtSecret}'}")
+    private String jwtSecret;
+
+    @Autowired
+    private UserInfo userInfo;
 
     @ApiOperation(value = "List Exareme algorithms and validations", response = String.class)
     @Cacheable(value = "exareme", unless = "#result.getStatusCode().value()!=200")
@@ -60,12 +62,11 @@ public class MethodsApi {
         LOGGER.info("List Galaxy workflows");
 
         try {
+            User user = userInfo.getUser();
+            String token = JWTUtil.getJWT(jwtSecret, user.getEmail());
+
             StringBuilder response = new StringBuilder();
-            HTTPUtil.sendAuthorizedHTTP(workflowUrl + "/getAllWorkflowWithDetails", "", response, "GET", workflowAuthorization);
-            LOGGER.info("************************************************* workflows");
-            LOGGER.info(workflowUrl + "/getAllWorkflowWithDetails");
-            LOGGER.info(workflowAuthorization);
-            LOGGER.info(response.toString());
+            HTTPUtil.sendAuthorizedHTTP(workflowUrl + "/getAllWorkflowWithDetails", "", response, "GET", "Bearer " + token);
             JsonElement element = new JsonParser().parse(response.toString());
 
             return ResponseEntity.ok(gson.toJson(element));
diff --git a/src/main/java/eu/hbp/mip/utils/JWTUtil.java b/src/main/java/eu/hbp/mip/utils/JWTUtil.java
new file mode 100644
index 0000000000000000000000000000000000000000..1e74841842150aef10778726040b88a53d14d218
--- /dev/null
+++ b/src/main/java/eu/hbp/mip/utils/JWTUtil.java
@@ -0,0 +1,19 @@
+package eu.hbp.mip.utils;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import com.auth0.jwt.algorithms.Algorithm;
+import com.auth0.jwt.JWT;
+
+public class JWTUtil {
+
+    private static final Logger LOGGER = LoggerFactory.getLogger(JWT.class);
+
+    public static String getJWT(String secret, String subject) {
+        LOGGER.info("getJWT");
+        Algorithm algorithm = Algorithm.HMAC512(secret);
+        String token = JWT.create().withIssuer("mip.humanbrainproject.eu").withSubject(subject).sign(algorithm);
+
+        return token;
+    }
+}
\ No newline at end of file