From aae6e04e947965a36f11109d9ec3f0531a77490d Mon Sep 17 00:00:00 2001 From: Costantino Perciante Date: Mon, 13 Jun 2016 10:07:41 +0000 Subject: [PATCH] Set/reset scope for password decryption git-svn-id: https://svn.d4science.research-infrastructures.eu/gcube/trunk/data-catalogue/ckan-util-library@129075 82a268e6-3cf1-43bd-a215-b396298e98cf --- pom.xml | 10 ++--- .../ckanutillibrary/CKanRunningCluster.java | 3 -- .../ckanutillibrary/CKanUtilsFactory.java | 2 +- .../ckanutillibrary/CKanUtilsImpl.java | 37 +++++++++++-------- 4 files changed, 28 insertions(+), 24 deletions(-) diff --git a/pom.xml b/pom.xml index c349fe3..b85c26f 100644 --- a/pom.xml +++ b/pom.xml @@ -78,15 +78,15 @@ org.gcube.core - common-encryption - [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) - provided + common-scope-maps + compile + org.gcube.core - common-scope-maps + common-encryption + [1.0.0-SNAPSHOT, 2.0.0-SNAPSHOT) provided - org.gcube.data-catalogue diff --git a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanRunningCluster.java b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanRunningCluster.java index 7bbb20e..4c15dbf 100644 --- a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanRunningCluster.java +++ b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanRunningCluster.java @@ -35,9 +35,6 @@ public class CKanRunningCluster { private final static String RUNTIME_CATALOGUE_RESOURCE_NAME = "CKanDataCatalogue"; private final static String PLATFORM_CATALOGUE_NAME = "Tomcat"; - // data catalogue url - - // retrieved data private List datacatalogueUrls = new ArrayList(); private List hostsDB = new ArrayList(); diff --git a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsFactory.java b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsFactory.java index 38fe3a3..5647590 100644 --- a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsFactory.java +++ b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsFactory.java @@ -64,7 +64,7 @@ public class CKanUtilsFactory { else{ logger.debug("Instanciating utils for this scope"); - CKanUtilsImpl utilsForScope = new CKanUtilsImpl("/gcube"); + CKanUtilsImpl utilsForScope = new CKanUtilsImpl(scope); // save into the map instanceForScopes.put(scope, utilsForScope); diff --git a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsImpl.java b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsImpl.java index 95d4333..5959428 100644 --- a/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsImpl.java +++ b/src/main/java/org/gcube/datacatalogue/ckanutillibrary/CKanUtilsImpl.java @@ -10,6 +10,7 @@ import java.util.List; import java.util.Map; import org.gcube.common.encryption.StringEncrypter; +import org.gcube.common.scope.api.ScopeProvider; import org.gcube.datacatalogue.ckanutillibrary.models.CKanUserWrapper; import org.gcube.datacatalogue.ckanutillibrary.models.ROLES_IN_ORGANIZATION; import org.gcube.datacatalogue.ckanutillibrary.models.STATE; @@ -48,20 +49,26 @@ public class CKanUtilsImpl implements CKanUtilsInterface{ public CKanUtilsImpl(String scope) throws Exception{ - CKanRunningCluster runningInstance = new CKanRunningCluster(scope); - CKAN_DB_URL = runningInstance.getDatabaseHosts().get(0); - CKAN_DB_NAME = runningInstance.getDataBaseName(); - CKAN_DB_USER = runningInstance.getDataBaseUser(); - CKAN_DB_PASSWORD = StringEncrypter.getEncrypter().decrypt(runningInstance.getDataBasePassword()); - //CKAN_DB_PASSWORD = StringEncrypter.getEncrypter().decrypt(runningInstance.getDataBasePassword(), scope); - CKAN_DB_PORT = runningInstance.getDatabasePorts().get(0); - CKAN_CATALOGUE_URL = runningInstance.getDataCatalogueUrl().get(0); - - // create db connection - Class.forName("org.postgresql.Driver"); - connection = DriverManager.getConnection( - "jdbc:postgresql://" + CKAN_DB_URL + ":" + CKAN_DB_PORT + "/" + CKAN_DB_NAME, CKAN_DB_USER, CKAN_DB_PASSWORD); + try{ + ScopeProvider.instance.set(scope); + CKanRunningCluster runningInstance = new CKanRunningCluster(scope); + CKAN_DB_URL = runningInstance.getDatabaseHosts().get(0); + CKAN_DB_NAME = runningInstance.getDataBaseName(); + CKAN_DB_USER = runningInstance.getDataBaseUser(); + CKAN_DB_PASSWORD = StringEncrypter.getEncrypter().decrypt(runningInstance.getDataBasePassword()); + //CKAN_DB_PASSWORD = StringEncrypter.getEncrypter().decrypt(runningInstance.getDataBasePassword(), scope); + CKAN_DB_PORT = runningInstance.getDatabasePorts().get(0); + CKAN_CATALOGUE_URL = runningInstance.getDataCatalogueUrl().get(0); + // create db connection + Class.forName("org.postgresql.Driver"); + connection = DriverManager.getConnection( + "jdbc:postgresql://" + CKAN_DB_URL + ":" + CKAN_DB_PORT + "/" + CKAN_DB_NAME, CKAN_DB_USER, CKAN_DB_PASSWORD); + }catch(Exception e){ + logger.error("error", e); + }finally{ + ScopeProvider.instance.reset(); + } } @Override @@ -394,10 +401,10 @@ public class CKanUtilsImpl implements CKanUtilsInterface{ request.setEntity(params); HttpResponse response = httpClient.execute(request); logger.debug("[PUBLIC]Response code is " + response.getStatusLine().getStatusCode() + " and response message is " + response.getStatusLine().getReasonPhrase()); - + if(response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) return true; - + }catch (Exception ex) { logger.error("Error while trying to set public the dataset " + ex); }