diff --git a/distro/web.xml b/distro/web.xml
index ef29b85..d0c51bb 100644
--- a/distro/web.xml
+++ b/distro/web.xml
@@ -23,6 +23,14 @@
rStudioAddress
rstudio-dev.d4science.org
+
+ rStudioProtocol
+ https
+
+
+ userConfigBasePath
+ /srv/rconnector/
+
org.gcube.data.analysis.rconnector.RConnector
diff --git a/pom.xml b/pom.xml
index e8a1086..8eaa93a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -14,7 +14,7 @@
org.gcube.data.analysis
r-connector
- 2.1.4-SNAPSHOT
+ 2.1.5-SNAPSHOT
RConnector
makes R available in the infrastructure
diff --git a/src/main/java/org/gcube/data/analysis/rconnector/ConfigFileWriter.java b/src/main/java/org/gcube/data/analysis/rconnector/ConfigFileWriter.java
index 9c6660f..bbc040a 100644
--- a/src/main/java/org/gcube/data/analysis/rconnector/ConfigFileWriter.java
+++ b/src/main/java/org/gcube/data/analysis/rconnector/ConfigFileWriter.java
@@ -16,10 +16,12 @@ import lombok.extern.slf4j.Slf4j;
public class ConfigFileWriter {
- public boolean write(Info info, String login, String usersHome, String fileName, String scriptToExecute){
- if (!usersHome.endsWith("/"))
- usersHome=usersHome+"/";
- File userDir = new File(usersHome+login);
+ public boolean write(Info info, String login, String fileName, String configFilePath, String scriptToExecute){
+ if (!configFilePath.endsWith("/"))
+ configFilePath=configFilePath+"/";
+ File userDir = new File(configFilePath+login);
+ if (!userDir.exists())
+ userDir.mkdir();
File configFile= new File(userDir, fileName);
Utils.executeCommandLine(scriptToExecute,login, SecurityTokenProvider.instance.get(), ScopeProvider.instance.get());
return writeFile(info, configFile);
diff --git a/src/main/java/org/gcube/data/analysis/rconnector/Resource.java b/src/main/java/org/gcube/data/analysis/rconnector/Resource.java
index 5cf60a0..368ebe1 100644
--- a/src/main/java/org/gcube/data/analysis/rconnector/Resource.java
+++ b/src/main/java/org/gcube/data/analysis/rconnector/Resource.java
@@ -45,8 +45,9 @@ public class Resource {
log.info("connect called with user {} and trID {} in scope {}",AuthorizationProvider.instance.get().getClient().getId(), tabularResourceId, ScopeProvider.instance.get());
String login = AuthorizationProvider.instance.get().getClient().getId();
- String usersHome = context.getInitParameter("usersHome");
+ //String usersHome = context.getInitParameter("usersHome");
String filename = context.getInitParameter("filename");
+ String configFilePath = context.getInitParameter("userConfigBasePath");
String scriptToExecute = context.getInitParameter("addUserScript");
if (ScopeProvider.instance.get()==null || login == null || tabularResourceId ==null ) return Response.serverError().build();
Info info;
@@ -57,7 +58,7 @@ public class Resource {
log.error("error connecting to r",e);
return Response.serverError().build();
}
- if (!writer.write(info, login, usersHome, filename, scriptToExecute)) return Response.serverError().build();
+ if (!writer.write(info, login, filename, configFilePath, scriptToExecute)) return Response.serverError().build();
return createResponse(login);
}
@@ -83,6 +84,7 @@ public class Resource {
try{
String keyFilePath = context.getInitParameter("storedKeyPath");
String rStudioServerAddress = context.getInitParameter("rStudioAddress");
+ String rStudioProtocol = context.getInitParameter("rStudioProtocol");
log.debug("key file path: "+keyFilePath);
log.debug("rstudio server address: "+rStudioServerAddress);
@@ -113,7 +115,7 @@ public class Resource {
"/", rStudioServerAddress, "", -1, false, true );
- return Response.seeOther(new URI("http://"+rStudioServerAddress))
+ return Response.seeOther(new URI(String.format("%s://%s", rStudioProtocol, rStudioServerAddress)))
.cookie(cookie).build();
}catch(Exception e){
log.error("error creating response", e);