diff --git a/.classpath b/.classpath index b5a68b0..b47000a 100644 --- a/.classpath +++ b/.classpath @@ -1,14 +1,15 @@ - + - - + + + @@ -17,11 +18,22 @@ + + + + + + + + + + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs index abdea9a..29abf99 100644 --- a/.settings/org.eclipse.core.resources.prefs +++ b/.settings/org.eclipse.core.resources.prefs @@ -1,4 +1,6 @@ eclipse.preferences.version=1 encoding//src/main/java=UTF-8 encoding//src/main/resources=UTF-8 +encoding//src/test/java=UTF-8 +encoding//src/test/resources=UTF-8 encoding/=UTF-8 diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index 8f1da17..152e5b6 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -20,6 +20,7 @@ + diff --git a/pom.xml b/pom.xml index 296d090..97318e6 100644 --- a/pom.xml +++ b/pom.xml @@ -143,12 +143,19 @@ provided + + + org.gcube.resources.discovery + ic-client + + + org.gcube.core common-encryption - + org.gcube.portal @@ -174,7 +181,7 @@ junit junit - 4.8.1 + 4.13.1 test @@ -182,6 +189,20 @@ + + + org.apache.maven.plugins + maven-surefire-plugin + + false + + org.apache.maven.surefire + surefire-junit47 + 3.0.0-M3 + + + + com.liferay.maven.plugins liferay-maven-plugin @@ -203,6 +224,7 @@ portlet + maven-compiler-plugin @@ -218,24 +240,6 @@ ${project.build.resources.encoding} - - org.apache.maven.plugins - maven-javadoc-plugin - - -Xdoclint:none - -Xdoclint:none - - 3.1.0 - - - generate-doc - install - - jar - - - - \ No newline at end of file diff --git a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/SystemServiceDefinition.java b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/SystemServiceDefinition.java index 71e3aaa..6835fd4 100644 --- a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/SystemServiceDefinition.java +++ b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/SystemServiceDefinition.java @@ -199,8 +199,7 @@ public class SystemServiceDefinition extends MVCPortlet { ArrayList itemsList = new ArrayList<>(); for (int i = 0; i < 10; i++) { - DefinitionItem definitionItem = new DefinitionItem("client_id_" + i, "description_" + i, "xxxx_" + i, - "enc_xxxx_" + i); + DefinitionItem definitionItem = new DefinitionItem("client_id_" + i, "description_" + i, "xxxx_" + i); itemsList.add(definitionItem); } @@ -351,7 +350,9 @@ public class SystemServiceDefinition extends MVCPortlet { logger.debug("Requested: [clientId={}, description={}]", clientId, description); String secret = UUID.randomUUID().toString(); String encryptedSecret = null; // StringEncrypter.getEncrypter().encrypt(secret); - DefinitionItem definitionItem = new DefinitionItem(clientId, description, secret, encryptedSecret); + DefinitionItem definitionItem = new DefinitionItem(clientId, description, secret); + + // publishCreateSSDEvent(definitionItem); SessionMessages.add(actionRequest, "success-definition-created"); actionResponse.setRenderParameter("jspPage", "/html/systemservicedefinition/view.jsp"); diff --git a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/definition/DefinitionItem.java b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/definition/DefinitionItem.java index ebdaefa..c28ded6 100644 --- a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/definition/DefinitionItem.java +++ b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/definition/DefinitionItem.java @@ -14,14 +14,12 @@ public class DefinitionItem implements Serializable { private String clientId; private String description; private String secret; - private String encryptedSecret; - public DefinitionItem(String clientId, String description, String secret, String encryptedSecret) { + public DefinitionItem(String clientId, String description, String secret) { super(); this.clientId = clientId; this.description = description; this.secret = secret; - this.encryptedSecret = encryptedSecret; } public String getClientId() { @@ -48,24 +46,13 @@ public class DefinitionItem implements Serializable { this.secret = secret; } - public String getEncryptedSecret() { - return encryptedSecret; - } - - public void setEncryptedSecret(String encryptedSecret) { - this.encryptedSecret = encryptedSecret; - } - public static long getSerialversionuid() { return serialVersionUID; } @Override public String toString() { - return "DefinitionItem [clientId=" + clientId + ", description=" + description + ", secret=" + secret - + ", encryptedSecret=" + encryptedSecret + "]"; + return "DefinitionItem [clientId=" + clientId + ", description=" + description + ", secret=" + secret + "]"; } - - } diff --git a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/event/CreateSSDEvent.java b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/event/CreateSSDEvent.java index 0fa897e..303a318 100644 --- a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/event/CreateSSDEvent.java +++ b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/event/CreateSSDEvent.java @@ -16,14 +16,12 @@ public class CreateSSDEvent extends PortalEvent { public static final String CLIENT_ID_ENTRY = "client_id"; public static final String DESCRIPTION_ENTRY = "description"; public static final String CLIENT_SECRET_ENTRY = "client_sercret"; - public static final String ENCRYPTED_SECRET_ENTRY = "encrypted_secret"; public CreateSSDEvent(DefinitionItem definitionItem) { super(NAME); setClientId(definitionItem.getClientId()); setDescription(definitionItem.getDescription()); setClientSecret(definitionItem.getSecret()); - setEncryptedSecret(definitionItem.getEncryptedSecret()); } public void setClientId(String clientId) { @@ -50,12 +48,4 @@ public class CreateSSDEvent extends PortalEvent { return (String) get(CLIENT_SECRET_ENTRY); } - public void setEncryptedSecret(String encryptedSecret) { - set(ENCRYPTED_SECRET_ENTRY, encryptedSecret); - } - - public String getEncryptedSecret() { - return (String) get(ENCRYPTED_SECRET_ENTRY); - } - } diff --git a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/is/InformationSystemUtils.java b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/is/InformationSystemUtils.java new file mode 100644 index 0000000..6153a7c --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/is/InformationSystemUtils.java @@ -0,0 +1,83 @@ +package org.gcube.portlets.admin.systemservicedefinition.is; + +import java.util.List; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.resources.gcore.ServiceEndpoint; +import org.gcube.common.scope.api.ScopeProvider; +import org.gcube.resources.discovery.client.api.DiscoveryClient; +import org.gcube.resources.discovery.client.queries.api.SimpleQuery; +import org.gcube.resources.discovery.icclient.ICFactory; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class InformationSystemUtils { + + private static Logger logger = LoggerFactory.getLogger(InformationSystemUtils.class); + + public static void retrieveSSD(String category, String scope, String token) throws Exception { + try { + logger.debug("Retrieve System Services Definition on IS"); + + if (scope == null || scope.isEmpty()) + throw new Exception("Invalid scope: " + scope); + + if (token == null || token.isEmpty()) + throw new Exception("Invalid token: " + scope); + + ScopeProvider.instance.set(scope); + SecurityTokenProvider.instance.set(token); + + // + + SimpleQuery query = ICFactory.queryFor(ServiceEndpoint.class); + query.addCondition("$resource/Profile/Category/text() eq '" + category + "'"); + DiscoveryClient client = ICFactory.clientFor(ServiceEndpoint.class); + + List resources = client.submit(query); + + logger.debug("Retrieved: " + resources); + + /* + * String serviceAddress = null; ArrayList serviceProperties = + * new ArrayList<>(); + * + * if (accessPointList != null && !accessPointList.isEmpty()) { for (int i = 0; + * i < accessPointList.size(); i++) { AccessPoint accessPoint = + * accessPointList.get(i); if (accessPoint != null) { if (i == 0) { if + * (accessPoint.address() != null && !accessPoint.address().isEmpty()) { String + * accessPointAddress = accessPoint.address(); int wpsWebProcessingServiceIndex + * = accessPointAddress .indexOf(Constants.WPSWebProcessingService); if + * (wpsWebProcessingServiceIndex > 0) { serviceAddress = + * accessPointAddress.substring(0, wpsWebProcessingServiceIndex); } } } + * + * String categoryDescription; if (accessPoint.description() == null && + * accessPoint.description().isEmpty()) { categoryDescription = + * Constants.DATA_MINER_DEFAULT_SERVICE_INFO_CATEGORY; } else { + * categoryDescription = accessPoint.description(); } + * + * if (accessPoint.properties() != null && !accessPoint.propertyMap().isEmpty()) + * { for (String key : accessPoint.propertyMap().keySet()) { Property property = + * accessPoint.propertyMap().get(key); if (property != null && property.name() + * != null && !property.name().isEmpty()) { if (property.name().contains(":")) { + * String[] propertyWithCategory = property.name().split(":"); if + * (propertyWithCategory.length >= 2) { serviceProperties.add(new + * ServiceInfoData(propertyWithCategory[1], property.value(), + * propertyWithCategory[0])); } else { serviceProperties.add(new + * ServiceInfoData(property.name(), property.value(), categoryDescription)); } } + * else { serviceProperties.add(new ServiceInfoData(property.name(), + * property.value(), categoryDescription)); } } + * + * } } } } } ServiceInfo serviceInfo = new ServiceInfo(serviceAddress, + * serviceProperties); + * + * logger.debug("DataMiner Service Info: " + serviceInfo); return serviceInfo; + */ + } catch (Throwable e) { + logger.error("Error in discovery System Services Endpoint in scope: " + scope); + logger.error(e.getLocalizedMessage(), e); + throw e; + } + } + +} diff --git a/src/main/java/org/gcube/portlets/admin/systemservicedefinition/shared/Constants.java b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/shared/Constants.java new file mode 100644 index 0000000..d05c829 --- /dev/null +++ b/src/main/java/org/gcube/portlets/admin/systemservicedefinition/shared/Constants.java @@ -0,0 +1,30 @@ +package org.gcube.portlets.admin.systemservicedefinition.shared; + +/** + * + * @author Giancarlo Panichi + * + * + */ +public class Constants { + + public static final boolean DEBUG_MODE = false; + public static final boolean TEST_ENABLE = false; + + public static final String DEFAULT_USER = "giancarlo.panichi"; + public static final String DEFAULT_SCOPE = "/gcube"; + public static final String DEFAULT_TOKEN = ""; + public static final String DEFAULT_ROLE = "OrganizationMember"; + + // Session + public static final String CURR_GROUP_ID = "CURR_GROUP_ID"; + + // Social Resource + public static final String SOCIAL_NETWORKING_NAME = "SocialNetworking"; + public static final String SOCIAL_NETWORKING_CATEGORY = "Portal"; + + // SSD Services Endpoint + public static final String SYSTEM_SERVICE_CATEGORY = "SystemService"; + +} + diff --git a/src/test/java/org/gcube/portlets/admin/systemservicedefinition/ISTest.java b/src/test/java/org/gcube/portlets/admin/systemservicedefinition/ISTest.java new file mode 100644 index 0000000..b4fe70a --- /dev/null +++ b/src/test/java/org/gcube/portlets/admin/systemservicedefinition/ISTest.java @@ -0,0 +1,44 @@ +package org.gcube.portlets.admin.systemservicedefinition; + +import static org.junit.Assert.assertTrue; + +import java.util.List; + +import org.gcube.common.resources.gcore.GenericResource; +import org.gcube.portlets.admin.systemservicedefinition.is.InformationSystemUtils; +import org.gcube.portlets.admin.systemservicedefinition.shared.Constants; +import org.junit.Test; + + +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +/** + * + * @author Giancarlo Panichi + * + * + */ +public class ISTest { + + private static Logger logger = LoggerFactory.getLogger(ISTest.class); + + @Test + public void findAlgoInVRE() { + + try { + InformationSystemUtils.retrieveSSD(Constants.SYSTEM_SERVICE_CATEGORY, + Constants.DEFAULT_SCOPE, Constants.DEFAULT_TOKEN); + assertTrue(true); + + } catch (Exception e) { + logger.error(e.getLocalizedMessage(), e); + assertTrue("Error searching the resource!",false); + } + + + } + + + +} \ No newline at end of file diff --git a/src/test/resources/.gitignore b/src/test/resources/.gitignore new file mode 100644 index 0000000..a7e2273 --- /dev/null +++ b/src/test/resources/.gitignore @@ -0,0 +1,9 @@ +/FARM.gcubekey +/d4science.research-infrastructures.eu.gcubekey +/devNext.gcubekey +/devsec.gcubekey +/gCubeApps.gcubekey +/gcube.gcubekey +/howto.txt +/log4j.properties +/symm.key