From 3e1b48d645dde10f26c6695ae28fa2ae3e9ad01e Mon Sep 17 00:00:00 2001 From: Luca Frosini Date: Mon, 31 Jan 2022 11:59:58 +0100 Subject: [PATCH] Switching to new authz --- .../java/org/gcube/gcat/utils/Constants.java | 57 ++----------------- .../persistence/ckan/CKANPackageTest.java | 15 +++-- .../org/gcube/gcat/social/SocialPostTest.java | 6 +- .../org/gcube/gcat/utils/ConstantsTest.java | 2 +- 4 files changed, 22 insertions(+), 58 deletions(-) diff --git a/src/main/java/org/gcube/gcat/utils/Constants.java b/src/main/java/org/gcube/gcat/utils/Constants.java index 94342ce..33cc950 100644 --- a/src/main/java/org/gcube/gcat/utils/Constants.java +++ b/src/main/java/org/gcube/gcat/utils/Constants.java @@ -6,8 +6,8 @@ import java.util.Properties; import javax.ws.rs.InternalServerErrorException; import org.gcube.common.authorization.utils.manager.SecretManager; +import org.gcube.common.authorization.utils.secret.JWTSecret; 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; @@ -18,43 +18,6 @@ public class Constants { public static final String CATALOGUE_NAME = "gCat"; - -// private static final String PROPERTY_FILENAME = "config.properties"; -// /* -// * Key : Context -// * Value : Application Token -// */ -// protected static final Map applicationTokens; -// -// static { -// try { -// applicationTokens = new HashMap<>(); -// Properties properties = new Properties(); -// InputStream input = Constants.class.getClassLoader().getResourceAsStream(PROPERTY_FILENAME); -// // load a properties file -// properties.load(input); -// Enumeration enumeration = properties.propertyNames(); -// while(enumeration.hasMoreElements()) { -// String context = (String) enumeration.nextElement(); -// String applicationToken = properties.getProperty(context); -// applicationTokens.put(context, applicationToken); -// } -// } catch(Exception e) { -// throw new WebApplicationException(e); -// } -// } -// -// @Deprecated -// private static String getCatalogueApplicationToken() { -// String context = SecretManager.instance.get().getContext(); -// try { -// return applicationTokens.get(context); -// } catch(Exception e) { -// throw new InternalServerErrorException( -// "Unable to retrieve Application Token for context " + context, e); -// } -// } - private static final String CLIENT_SECRET_FILENAME = "config.properties"; private static final String CLIENT_ID = "gcat"; protected static String clientSecret; @@ -75,24 +38,16 @@ public class Constants { } } - private static String getJWTAccessToken() throws Exception { + private static TokenResponse getJWTAccessToken() throws Exception { String contextToAuthorise = SecretManager.instance.get().getContext(); TokenResponse tr = KeycloakClientFactory.newInstance().queryUMAToken(CLIENT_ID, getClientSecret(contextToAuthorise), contextToAuthorise, null); - return tr.getAccessToken(); - } - - public static String getCatalogueSecurityToken() throws Exception { - try { - return getJWTAccessToken(); - }catch (Exception e) { - throw e; -// return getCatalogueApplicationToken(); - } + return tr; } public static Secret getCatalogueSecret() throws Exception { - String securityToken = getCatalogueSecurityToken(); - return SecretUtility.getSecretByTokenString(securityToken); + TokenResponse tr = getJWTAccessToken(); + Secret secret = new JWTSecret(tr.getAccessToken()); + return secret; } } diff --git a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java index ef47184..12db4c5 100644 --- a/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java +++ b/src/test/java/org/gcube/gcat/persistence/ckan/CKANPackageTest.java @@ -388,7 +388,7 @@ public class CKANPackageTest extends ContextTest { } - protected CKANPackage createPackage(ObjectMapper mapper) throws Exception { + protected CKANPackage createPackage(ObjectMapper mapper, Boolean socialPost) throws Exception { String currentContext = SecretManager.instance.get().getContext(); ScopeBean scopeBean = new ScopeBean(currentContext); String ckanOrganizationName = CKANPackage.getOrganizationName(scopeBean); @@ -435,6 +435,12 @@ public class CKANPackageTest extends ContextTest { CKANPackage ckanPackage = new CKANPackage(); ckanPackage.setName(ITEM_NAME_VALUE); //ckanPackage.setApiKey(CKANUtility.getSysAdminAPI()); + + MultivaluedMap mvm = new MultivaluedHashMap(); + mvm.add(GCatConstants.SOCIAL_POST_QUERY_PARAMETER, socialPost.toString()); + UriInfo uriInfo = getUriInfo(mvm); + ckanPackage.setUriInfo(uriInfo); + String createdItem = ckanPackage.create(mapper.writeValueAsString(itemObjectNode)); logger.debug(createdItem); @@ -444,7 +450,7 @@ public class CKANPackageTest extends ContextTest { @Test public void create() throws Exception { ObjectMapper mapper = new ObjectMapper(); - createPackage(mapper); + createPackage(mapper, true); } @Test @@ -459,7 +465,7 @@ public class CKANPackageTest extends ContextTest { @Test public void createReadUpdateUpdatePurge() throws Exception { ObjectMapper mapper = new ObjectMapper(); - createPackage(mapper); + createPackage(mapper, false); CKANPackage ckanPackage = new CKANPackage(); ckanPackage.setName(ITEM_NAME_VALUE); @@ -527,6 +533,7 @@ public class CKANPackageTest extends ContextTest { logger.debug(ret); } + @Ignore @Test //(expected = NotFoundException.class) public void delete() throws Exception { @@ -573,7 +580,7 @@ public class CKANPackageTest extends ContextTest { ObjectMapper mapper = new ObjectMapper(); - createPackage(mapper); + createPackage(mapper, false); ContextTest.setContextByName("leonardo.candela_"+VRE); diff --git a/src/test/java/org/gcube/gcat/social/SocialPostTest.java b/src/test/java/org/gcube/gcat/social/SocialPostTest.java index affa474..71a3da2 100644 --- a/src/test/java/org/gcube/gcat/social/SocialPostTest.java +++ b/src/test/java/org/gcube/gcat/social/SocialPostTest.java @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.List; import java.util.UUID; +import org.gcube.common.authorization.utils.secret.Secret; import org.gcube.gcat.ContextTest; import org.gcube.gcat.utils.Constants; import org.junit.Test; @@ -16,8 +17,9 @@ public class SocialPostTest extends ContextTest { @Test public void testToken() throws Exception { - logger.debug("Application Token is {}", Constants.getCatalogueSecurityToken()); - ContextTest.setContext(Constants.getCatalogueSecurityToken()); + Secret secret = Constants.getCatalogueSecret(); + logger.debug("Application Token is {}", secret.getToken()); + ContextTest.set(secret); } @Test diff --git a/src/test/java/org/gcube/gcat/utils/ConstantsTest.java b/src/test/java/org/gcube/gcat/utils/ConstantsTest.java index cf22a1a..defcc45 100644 --- a/src/test/java/org/gcube/gcat/utils/ConstantsTest.java +++ b/src/test/java/org/gcube/gcat/utils/ConstantsTest.java @@ -14,7 +14,7 @@ public class ConstantsTest extends ContextTest { @Test public void testGetApplicationToken() throws Exception { logger.debug("Application token for Context {} is {}", SecretManager.instance.get().getContext(), - Constants.getCatalogueSecurityToken()); + Constants.getCatalogueSecret().getToken()); }