diff --git a/pom.xml b/pom.xml index 563ba6d..3e98ed6 100644 --- a/pom.xml +++ b/pom.xml @@ -50,7 +50,7 @@ org.gcube.data-catalogue gcat-api - [2.0.0, 3.0.0-SNAPSHOT) + [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) org.gcube.common @@ -140,7 +140,7 @@ org.gcube.data-publishing storagehub-application-persistence - [2.0.0-SNAPSHOT,3.0.0-SNAPSHOT) + [3.0.0-SNAPSHOT,4.0.0-SNAPSHOT) org.json diff --git a/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java b/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java index 3b5e6b7..29a9c8c 100644 --- a/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java +++ b/src/main/java/org/gcube/gcat/moderation/thread/zulip/ZulipStream.java @@ -8,13 +8,13 @@ import org.gcube.com.fasterxml.jackson.databind.JsonNode; import org.gcube.com.fasterxml.jackson.databind.node.ArrayNode; import org.gcube.com.fasterxml.jackson.databind.node.ObjectNode; import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.secret.Secret; import org.gcube.gcat.api.moderation.CMItemStatus; import org.gcube.gcat.api.moderation.Moderated; import org.gcube.gcat.moderation.thread.ModerationThread; import org.gcube.gcat.moderation.thread.zulip.ZulipResponse.Result; import org.gcube.gcat.social.SocialUsers; import org.gcube.gcat.utils.Constants; -import org.gcube.storagehub.ApplicationMode; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,12 +51,13 @@ public class ZulipStream extends ModerationThread { return new ZulipRestExecutor(zulipAuth.getEmail(), zulipAuth.getAPIKey(), zulipAuth.getSite()); } - public ZulipRestExecutor getGCatZulipRestExecutor() { + public ZulipRestExecutor getGCatZulipRestExecutor() throws Exception { if(gCatZulipRestExecutor==null) { - ApplicationMode applicationMode = new ApplicationMode(Constants.getCatalogueApplicationToken()); - applicationMode.start(); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); + secretManager.startSession(secret); gCatZulipRestExecutor = getZulipRestExecutor(); - applicationMode.end(); + secretManager.endSession(); } return gCatZulipRestExecutor; } diff --git a/src/main/java/org/gcube/gcat/social/SocialPost.java b/src/main/java/org/gcube/gcat/social/SocialPost.java index b1c5331..c54eacb 100644 --- a/src/main/java/org/gcube/gcat/social/SocialPost.java +++ b/src/main/java/org/gcube/gcat/social/SocialPost.java @@ -182,7 +182,7 @@ public class SocialPost extends Thread { GXHTTPStringRequest gxhttpStringRequest = GXHTTPStringRequest.newRequest(basePath); gxhttpStringRequest.from(Constants.CATALOGUE_NAME); gxhttpStringRequest.header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON); - gxhttpStringRequest.setSecurityToken(Constants.getSecurityToken()); + gxhttpStringRequest.setSecurityToken(Constants.getCatalogueSecurityToken()); gxhttpStringRequest.path(SOCIAL_SERVICE_WRITE_APPLICATION_POST_PATH); HttpURLConnection httpURLConnection = gxhttpStringRequest.post(objectMapper.writeValueAsString(objectNode)); diff --git a/src/main/java/org/gcube/gcat/utils/Constants.java b/src/main/java/org/gcube/gcat/utils/Constants.java index b5902d2..507a3fa 100644 --- a/src/main/java/org/gcube/gcat/utils/Constants.java +++ b/src/main/java/org/gcube/gcat/utils/Constants.java @@ -10,6 +10,8 @@ import javax.ws.rs.InternalServerErrorException; import javax.ws.rs.WebApplicationException; import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.secret.Secret; +import org.gcube.common.authorization.utils.secret.SecretUtility; import org.gcube.common.keycloak.KeycloakClientFactory; import org.gcube.common.keycloak.model.TokenResponse; @@ -46,7 +48,7 @@ public class Constants { } @Deprecated - public static String getCatalogueApplicationToken() { + private static String getCatalogueApplicationToken() { String context = SecretManager.instance.get().getContext(); try { return applicationTokens.get(context); @@ -82,8 +84,7 @@ public class Constants { return tr.getAccessToken(); } - - public static String getSecurityToken() throws Exception { + public static String getCatalogueSecurityToken() throws Exception { try { return getJWTAccessToken(); }catch (Exception e) { @@ -91,4 +92,9 @@ public class Constants { } } + public static Secret getCatalogueSecret() throws Exception { + String securityToken = getCatalogueSecurityToken(); + return SecretUtility.getSecretByTokenString(securityToken); + } + } diff --git a/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java b/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java index 763f268..f5fe5cd 100644 --- a/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java +++ b/src/main/java/org/gcube/gcat/workspace/CatalogueStorageHubManagement.java @@ -4,11 +4,12 @@ import java.net.HttpURLConnection; import java.net.URL; import java.util.Map; +import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.secret.Secret; import org.gcube.common.gxhttp.request.GXHTTPStringRequest; import org.gcube.common.storagehub.client.dsl.FileContainer; import org.gcube.common.storagehub.model.Metadata; import org.gcube.gcat.utils.Constants; -import org.gcube.storagehub.ApplicationMode; import org.gcube.storagehub.StorageHubManagement; import org.glassfish.jersey.media.multipart.ContentDisposition; import org.slf4j.Logger; @@ -43,9 +44,10 @@ public class CatalogueStorageHubManagement { } public URL ensureResourcePersistence(URL persistedURL, String itemID, String resourceID) throws Exception { - ApplicationMode applicationMode = new ApplicationMode(Constants.getSecurityToken()); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); try { - applicationMode.start(); + secretManager.startSession(secret); GXHTTPStringRequest gxhttpStringRequest = GXHTTPStringRequest.newRequest(persistedURL.toString()); gxhttpStringRequest.from(Constants.CATALOGUE_NAME); gxhttpStringRequest.isExternalCall(true); @@ -63,20 +65,21 @@ public class CatalogueStorageHubManagement { logger.error("Error while trying to persists the resource", e); throw e; } finally { - applicationMode.end(); + secretManager.endSession(); } } public void deleteResourcePersistence(String itemID, String resourceID, String mimeType) throws Exception { - ApplicationMode applicationMode = new ApplicationMode(Constants.getSecurityToken()); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); try { - applicationMode.start(); + secretManager.startSession(secret); storageHubManagement = new StorageHubManagement(); CatalogueMetadata catalogueMetadata = new CatalogueMetadata(itemID); storageHubManagement.setCheckMetadata(catalogueMetadata); storageHubManagement.removePersistedFile(resourceID, mimeType); } finally { - applicationMode.end(); + secretManager.endSession(); } } @@ -97,35 +100,38 @@ public class CatalogueStorageHubManagement { } public void renameFile(String resourceID, String revisionID) throws Exception { - ApplicationMode applicationMode = new ApplicationMode(Constants.getSecurityToken()); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); try { - applicationMode.start(); + secretManager.startSession(secret); FileContainer createdfile = storageHubManagement.getPersistedFile(); createdfile.rename(resourceID); internalAddRevisionID(resourceID, revisionID); } finally { - applicationMode.end(); + secretManager.endSession(); } } public void addRevisionID(String resourceID, String revisionID) throws Exception { - ApplicationMode applicationMode = new ApplicationMode(Constants.getSecurityToken()); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); try { - applicationMode.start(); + secretManager.startSession(secret); internalAddRevisionID(resourceID, revisionID); } finally { - applicationMode.end(); + secretManager.endSession(); } } public FileContainer retrievePersistedFile(String id, String mimeType) throws Exception { - ApplicationMode applicationMode = new ApplicationMode(Constants.getSecurityToken()); + SecretManager secretManager = SecretManager.instance.get(); + Secret secret = Constants.getCatalogueSecret(); try { - applicationMode.start(); + secretManager.startSession(secret); return storageHubManagement.getPersistedFile(id, mimeType); } finally { - applicationMode.end(); + secretManager.endSession(); } } diff --git a/src/test/java/org/gcube/gcat/social/SocialPostTest.java b/src/test/java/org/gcube/gcat/social/SocialPostTest.java index e2daea2..affa474 100644 --- a/src/test/java/org/gcube/gcat/social/SocialPostTest.java +++ b/src/test/java/org/gcube/gcat/social/SocialPostTest.java @@ -16,8 +16,8 @@ public class SocialPostTest extends ContextTest { @Test public void testToken() throws Exception { - logger.debug("Application Token is {}", Constants.getCatalogueApplicationToken()); - ContextTest.setContext(Constants.getCatalogueApplicationToken()); + logger.debug("Application Token is {}", Constants.getCatalogueSecurityToken()); + ContextTest.setContext(Constants.getCatalogueSecurityToken()); } @Test diff --git a/src/test/java/org/gcube/gcat/utils/ConstantsTest.java b/src/test/java/org/gcube/gcat/utils/ConstantsTest.java index 68f9819..ffcd231 100644 --- a/src/test/java/org/gcube/gcat/utils/ConstantsTest.java +++ b/src/test/java/org/gcube/gcat/utils/ConstantsTest.java @@ -11,9 +11,9 @@ public class ConstantsTest extends ContextTest { private static final Logger logger = LoggerFactory.getLogger(ConstantsTest.class); @Test - public void testGetApplicationToken() { + public void testGetApplicationToken() throws Exception { logger.debug("Application token for Context {} is {}", SecretManager.instance.get().getContext(), - Constants.getCatalogueApplicationToken()); + Constants.getCatalogueSecurityToken()); } }