diff --git a/pom.xml b/pom.xml index 14c064c..ef8b633 100644 --- a/pom.xml +++ b/pom.xml @@ -16,7 +16,7 @@ ${project.basedir}/src/main/webapp/WEB-INF ${project.basedir}/distro - + 2.13 @@ -36,7 +36,7 @@ - + @@ -59,7 +59,11 @@ org.aspectj aspectjrt - + + org.gcube.common + authorization-control-library + [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + @@ -73,27 +77,59 @@ javax.servlet javax.servlet-api 3.0.1 - provided javax.ws.rs javax.ws.rs-api 2.0 - - - - - - + javax.enterprise cdi-api - 2.0 + 1.1 + + + + + org.glassfish.jersey.containers + + jersey-container-servlet + ${jersey-version} + + + + + + + org.jboss.weld.servlet + weld-servlet + 2.2.10.Final + + + + org.jboss + jandex + 1.2.2.Final + + + + com.fasterxml.jackson.jaxrs + jackson-jaxrs-json-provider + 2.3.0 + + + + org.glassfish.jersey.media + jersey-media-json-jackson + ${jersey-version} + + + + org.glassfish.jersey.media + jersey-media-multipart + ${jersey-version} @@ -104,65 +140,88 @@ [1.0.0-SNAPSHOT,2.0.0-SNAPSHOT) + + + + postgresql + postgresql + 9.1-901.jdbc4 + runtime + + + + + + org.glassfish.jersey.test-framework.providers + jersey-test-framework-provider-simple + ${jersey-version} + test + + + ch.qos.logback + logback-classic + 1.0.13 + test + - + - - + + - - - - org.codehaus.mojo - aspectj-maven-plugin - 1.7 - - 1.8 - 1.8 - 1.8 - - - org.gcube.common - authorization-control-library - - - - - - - compile - - - - - - + + + org.eclipse.m2e + lifecycle-mapping + 1.0.0 + + + + + + org.codehaus.mojo + aspectj-maven-plugin + [1.0,) + + test-compile + compile + + + + + + + + + + + + org.codehaus.mojo + aspectj-maven-plugin + 1.7 + + 1.8 + 1.8 + 1.8 + + + org.gcube.common + authorization-control-library + + + + + + + compile + + + + + + - - + + \ No newline at end of file diff --git a/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java b/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java index 7b51b98..5d8e8a0 100644 --- a/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java +++ b/src/main/java/org/gcube/application/perform/service/LocalConfiguration.java @@ -17,11 +17,11 @@ public class LocalConfiguration { public static final String MAPPING_DB_ENDPOINT_NAME="mapping-db.ep.name"; - public static final String MAPPING_DB_ENDPOINT_CATEGORY="mapping-db.ep.name"; + public static final String MAPPING_DB_ENDPOINT_CATEGORY="mapping-db.ep.category"; public static final String PERFORMANCE_DB_ENDPOINT_NAME="performance-db.ep.name"; - public static final String PERFORMANCE_DB_ENDPOINT_CATEGORY="performance-db.ep.name"; + public static final String PERFORMANCE_DB_ENDPOINT_CATEGORY="performance-db.ep.category"; public static final String IMPORTER_COMPUTATION_ID="dm.importer.computationid"; diff --git a/src/main/java/org/gcube/application/perform/service/PerformService.java b/src/main/java/org/gcube/application/perform/service/PerformService.java index fe8cd0b..f630d7d 100644 --- a/src/main/java/org/gcube/application/perform/service/PerformService.java +++ b/src/main/java/org/gcube/application/perform/service/PerformService.java @@ -2,13 +2,43 @@ package org.gcube.application.perform.service; import javax.ws.rs.ApplicationPath; +import org.gcube.application.perform.service.engine.Importer; +import org.gcube.application.perform.service.engine.ImporterImpl; +import org.gcube.application.perform.service.engine.MappingManager; +import org.gcube.application.perform.service.engine.MappingManagerImpl; +import org.gcube.application.perform.service.rest.Mappings; +import org.glassfish.hk2.utilities.binding.AbstractBinder; +import org.glassfish.jersey.media.multipart.MultiPartFeature; +import org.glassfish.jersey.server.ResourceConfig; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; -@ApplicationPath(ServiceConstants.APPLICATION_PATH) -public class PerformService { +@ApplicationPath(ServiceConstants.SERVICE_NAME) +public class PerformService extends ResourceConfig{ + + private static final Logger log= LoggerFactory.getLogger(PerformService.class); + + public PerformService() { - super(); + super(); + + AbstractBinder binder = new AbstractBinder() { + @Override + protected void configure() { + bind(MappingManagerImpl.class).to(MappingManager.class); + bind(ImporterImpl.class).to(Importer.class); + + } + }; + register(binder); + registerClasses(Mappings.class); + +// packages("org.gcube.application.perform.service.rest"); + register(MultiPartFeature.class); } + + } diff --git a/src/main/java/org/gcube/application/perform/service/ServiceConstants.java b/src/main/java/org/gcube/application/perform/service/ServiceConstants.java index e81e7ff..64a8c87 100644 --- a/src/main/java/org/gcube/application/perform/service/ServiceConstants.java +++ b/src/main/java/org/gcube/application/perform/service/ServiceConstants.java @@ -2,6 +2,7 @@ package org.gcube.application.perform.service; public interface ServiceConstants { + public static final String SERVICE_NAME="perform-service"; public static final String APPLICATION_PATH="/gcube/service/"; public static interface Mappings{ @@ -13,6 +14,8 @@ public interface ServiceConstants { public static final String BATCH_TYPE_PARAMETER="type"; public static final String FARM_METHOD="farm"; + + public static final String AUTH="statistical.manager"; } diff --git a/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java b/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java index bcd9552..88a57e7 100644 --- a/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java +++ b/src/main/java/org/gcube/application/perform/service/engine/MappingManager.java @@ -9,6 +9,7 @@ import org.gcube.application.perform.service.engine.model.InvalidRequestExceptio import org.gcube.application.perform.service.engine.model.anagraphic.Batch; import org.gcube.application.perform.service.engine.model.anagraphic.Farm; + public interface MappingManager { public Batch getBatch(DBQueryDescriptor desc) throws BeanNotFound, SQLException, InvalidRequestException, InternalException; diff --git a/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java b/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java index d9d2e07..1c73f92 100644 --- a/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java +++ b/src/main/java/org/gcube/application/perform/service/engine/MappingManagerImpl.java @@ -20,11 +20,11 @@ import org.slf4j.LoggerFactory; public class MappingManagerImpl implements MappingManager { private static final Logger log= LoggerFactory.getLogger(MappingManagerImpl.class); - + private static ISQueryDescriptor isQueryDescriptor=null; + - - + private static synchronized ISQueryDescriptor getISQueryDescriptor() { if(isQueryDescriptor==null) { isQueryDescriptor= @@ -34,43 +34,43 @@ public class MappingManagerImpl implements MappingManager { } return isQueryDescriptor; } - - + + @Override public Batch getBatch(DBQueryDescriptor desc) throws SQLException, InternalException{ DataBaseManager db=DataBaseManager.get(getISQueryDescriptor()); Connection conn=db.getConnection(); Query getQuery=Queries.GET_BATCH_BY_DESCRIPTIVE_KEY; PreparedStatement psSearch=getQuery.get(conn, desc); - + ResultSet rs=psSearch.executeQuery(); - + + if(rs.next()) + return Queries.rowToBatch(rs); + + // ID NOT FOUND, TRY TO REGISTER IT + + log.trace("Registering new Batch from condition {}",desc); + PreparedStatement psInsert=Queries.INSERT_BATCH.get(conn, desc); + + boolean inserted=psInsert.executeUpdate()==1; + if(inserted) { + conn.commit(); + log.trace("Committed Batch."); + } + rs=psSearch.executeQuery(); + if(rs.next()) return Queries.rowToBatch(rs); - - // ID NOT FOUND, TRY TO REGISTER IT - - log.trace("Registering new Batch from condition {}",desc); - PreparedStatement psInsert=Queries.INSERT_BATCH.get(conn, desc); - - boolean inserted=psInsert.executeUpdate()==1; - if(inserted) { - conn.commit(); - log.trace("Committed Batch."); - } - rs=psSearch.executeQuery(); - - if(rs.next()) - return Queries.rowToBatch(rs); - else throw new BeanNotFound(String.format("Unable to find Bean with ",desc)); - + else throw new BeanNotFound(String.format("Unable to find Bean with ",desc)); + } @Override public Farm getFarm(DBQueryDescriptor desc) throws SQLException, InternalException{ DataBaseManager db=DataBaseManager.get(getISQueryDescriptor()); - - + + Connection conn=db.getConnection(); PreparedStatement psGet=null; DBField IDField=DBField.Farm.fields.get(DBField.Farm.FARM_ID); @@ -78,14 +78,14 @@ public class MappingManagerImpl implements MappingManager { psGet=Queries.GET_FARM_BY_ID.get(conn, desc); } - ResultSet rs=psGet.executeQuery(); - if(!rs.next()) - throw new BeanNotFound("Farm not found. Condition was "+desc); - - return Queries.rowToFarm(rs); + ResultSet rs=psGet.executeQuery(); + if(!rs.next()) + throw new BeanNotFound("Farm not found. Condition was "+desc); + + return Queries.rowToFarm(rs); } - - - + + + } diff --git a/src/main/java/org/gcube/application/perform/service/engine/Queries.java b/src/main/java/org/gcube/application/perform/service/engine/Queries.java index d6e4af8..ddbd6d3 100644 --- a/src/main/java/org/gcube/application/perform/service/engine/Queries.java +++ b/src/main/java/org/gcube/application/perform/service/engine/Queries.java @@ -13,7 +13,9 @@ import org.gcube.application.perform.service.engine.model.importer.ImportStatus; public class Queries { public static final Query GET_BATCH_BY_DESCRIPTIVE_KEY= new Query("Select * from batches where farmid=? AND type=? AND name= ?", - new DBField[] {}); + new DBField[] {DBField.Batch.fields.get(DBField.Batch.FARM_ID), + DBField.Batch.fields.get(DBField.Batch.BATCH_TYPE), + DBField.Batch.fields.get(DBField.Batch.BATCH_NAME)}); public static final Query INSERT_BATCH=new Query("INSERT INTO batches (id,uuid,farmid,type,name) VALUES (SELECT (max(id)+1 from batches),?,?,?,?) ON CONFLICT DO NOTHING", new DBField[] {}); diff --git a/src/main/java/org/gcube/application/perform/service/engine/Query.java b/src/main/java/org/gcube/application/perform/service/engine/Query.java index 7f1bc3d..72a6180 100644 --- a/src/main/java/org/gcube/application/perform/service/engine/Query.java +++ b/src/main/java/org/gcube/application/perform/service/engine/Query.java @@ -6,13 +6,18 @@ import java.sql.SQLException; import java.util.ArrayList; import java.util.Arrays; +import org.gcube.application.perform.service.AnagraphicTests; import org.gcube.application.perform.service.engine.model.DBField; import org.gcube.application.perform.service.engine.model.DBQueryDescriptor; import org.gcube.application.perform.service.engine.model.InvalidRequestException; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; public class Query { + private static final Logger log= LoggerFactory.getLogger(Query.class); + private final String query; private final ArrayList psFields; @@ -36,6 +41,7 @@ public class Query { } public PreparedStatement fill(PreparedStatement ps,DBQueryDescriptor desc) throws SQLException, InvalidRequestException{ + log.debug("Setting VALUES {} for Query {} ",desc,getQuery()); ArrayList fields=getPSFields(); for(int i=0;i client = clientFor(ServiceEndpoint.class); @@ -51,5 +61,8 @@ public class ISUtils { return toReturn; } - + public static final void setFixedToken(String toSet) { + log.warn("SETTING FIXED TOKEN. THIS SHOULD HAPPEN ONLY IN DEBUG MODE."); + fixedToken=toSet; + } } diff --git a/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java b/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java index a397e3f..d2f4899 100644 --- a/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java +++ b/src/main/java/org/gcube/application/perform/service/engine/utils/ScopeUtils.java @@ -51,4 +51,6 @@ public class ScopeUtils { return SecurityTokenProvider.instance.get(); } + + } diff --git a/src/main/java/org/gcube/application/perform/service/rest/Mappings.java b/src/main/java/org/gcube/application/perform/service/rest/Mappings.java index 360d675..3115a18 100644 --- a/src/main/java/org/gcube/application/perform/service/rest/Mappings.java +++ b/src/main/java/org/gcube/application/perform/service/rest/Mappings.java @@ -10,9 +10,12 @@ import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.QueryParam; import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Context; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import javax.ws.rs.core.UriInfo; +import org.gcube.application.perform.service.AnagraphicTests; import org.gcube.application.perform.service.PerformServiceManager; import org.gcube.application.perform.service.ServiceConstants; import org.gcube.application.perform.service.engine.MappingManager; @@ -23,17 +26,22 @@ import org.gcube.application.perform.service.engine.model.InternalException; import org.gcube.application.perform.service.engine.model.InvalidRequestException; import org.gcube.application.perform.service.engine.model.anagraphic.Batch; import org.gcube.application.perform.service.engine.model.anagraphic.Farm; +import org.gcube.common.authorization.control.annotations.AuthorizationControl; import org.gcube.smartgears.annotations.ManagedBy; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; @Path(ServiceConstants.Mappings.PATH) @ManagedBy(PerformServiceManager.class) -@AuthorizationControl(allowed={"lucio.lelii"}, exception=MyAuthException.class) + public class Mappings { - + private static final Logger log= LoggerFactory.getLogger(Mappings.class); + + @Inject private MappingManager mappings; @@ -45,10 +53,13 @@ public class Mappings { * @param farmid * @return */ + + @GET @Path(ServiceConstants.Mappings.BATCHES_METHOD) @Produces(MediaType.APPLICATION_JSON) + @AuthorizationControl(allowed={ServiceConstants.Mappings.AUTH}, exception=MyAuthException.class) public Batch getBatch(@QueryParam(ServiceConstants.Mappings.BATCH_NAME_PARAMETER) String name, @QueryParam(ServiceConstants.Mappings.BATCH_TYPE_PARAMETER) String type, @QueryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER) Long farmid) { @@ -68,13 +79,20 @@ public class Mappings { try{ return mappings.getBatch(desc); }catch(BeanNotFound e) { + log.debug("Exception while getting Batch",e); throw new WebApplicationException("Unable to find Batch with condition "+desc,Response.Status.BAD_REQUEST); }catch(SQLException e) { + log.debug("Exception while getting Batch",e); throw new WebApplicationException("Unexpected Exception occurred while dealing with database.", e,Response.Status.INTERNAL_SERVER_ERROR); } catch (InvalidRequestException e) { + log.debug("Exception while getting Batch",e); throw new WebApplicationException("Unable to search for Batch. ",e,Response.Status.BAD_REQUEST); - } catch (InternalException e) { + } catch (InternalException e) { + log.warn("Unexpected Exception while getting Batch",e); throw new WebApplicationException("Unexpected Exception.", e,Response.Status.INTERNAL_SERVER_ERROR); + }catch(Throwable t) { + log.warn("Unexpected Exception while getting Batch",t); + throw new WebApplicationException("Unexpected Exception.", t,Response.Status.INTERNAL_SERVER_ERROR); } } @@ -89,18 +107,20 @@ public class Mappings { @GET @Path(ServiceConstants.Mappings.FARM_METHOD) @Produces(MediaType.APPLICATION_JSON) - public Farm getFarm(@QueryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER) Long farmid, - @QueryParam(ServiceConstants.Mappings.FARM_UUID_PARAMETER) String farmuuid){ - + @AuthorizationControl(allowed={ServiceConstants.Mappings.AUTH}, exception=MyAuthException.class) + public Farm getFarm(@Context UriInfo info){ + DBQueryDescriptor desc=null; - + try { - InterfaceCommons.checkMandatory(farmid, ServiceConstants.Mappings.FARM_ID_PARAMETER); - desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.FARM_ID), farmid)); + String farmidString=info.getQueryParameters().getFirst(ServiceConstants.Mappings.FARM_ID_PARAMETER); + InterfaceCommons.checkMandatory(farmidString, ServiceConstants.Mappings.FARM_ID_PARAMETER); + desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.FARM_ID), Long.parseLong(farmidString))); }catch(WebApplicationException e) { try { - InterfaceCommons.checkMandatory(farmuuid, ServiceConstants.Mappings.FARM_UUID_PARAMETER); - desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.UUID), farmuuid)); + String farmUUID=info.getQueryParameters().getFirst(ServiceConstants.Mappings.FARM_UUID_PARAMETER); + InterfaceCommons.checkMandatory(farmUUID, ServiceConstants.Mappings.FARM_UUID_PARAMETER); + desc=new DBQueryDescriptor(Collections.singletonMap(DBField.Farm.fields.get(DBField.Farm.UUID), farmUUID)); }catch(WebApplicationException e1) { throw new WebApplicationException("Specify either "+ServiceConstants.Mappings.FARM_UUID_PARAMETER+" or "+ServiceConstants.Mappings.FARM_ID_PARAMETER,Response.Status.BAD_REQUEST); } @@ -109,13 +129,24 @@ public class Mappings { try{ return mappings.getFarm(desc); }catch(BeanNotFound e) { + log.debug("Exception while getting Farm",e); throw new WebApplicationException("Unable to find Farm with condition "+desc,Response.Status.BAD_REQUEST); }catch(SQLException e) { + log.debug("Exception while getting Farm",e); throw new WebApplicationException("Unexpected Exception occurred while dealing with database.", e,Response.Status.INTERNAL_SERVER_ERROR); } catch (InvalidRequestException e) { + log.debug("Exception while getting Farm",e); throw new WebApplicationException("Unable to search for Farm. ",e,Response.Status.BAD_REQUEST); } catch (InternalException e) { + log.warn("Unexpected Exception while getting Farm",e); throw new WebApplicationException("Unexpected Exception.", e,Response.Status.INTERNAL_SERVER_ERROR); + }catch(NumberFormatException t) { + throw new WebApplicationException("Invalid FarmID format "+desc,Response.Status.BAD_REQUEST); + }catch(Throwable t) { + log.warn("Unexpected Exception while getting Farm",t); + throw new WebApplicationException("Unexpected Exception.", t,Response.Status.INTERNAL_SERVER_ERROR); } } + + } diff --git a/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java b/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java new file mode 100644 index 0000000..4ad1573 --- /dev/null +++ b/src/main/java/org/gcube/application/perform/service/rest/MyAuthException.java @@ -0,0 +1,16 @@ +package org.gcube.application.perform.service.rest; + +import javax.ws.rs.WebApplicationException; +import javax.ws.rs.core.Response.Status; + +public class MyAuthException extends WebApplicationException { + /** + * + */ + private static final long serialVersionUID = 1L; + + public MyAuthException(Throwable cause) { + super(cause, Status.FORBIDDEN); + } + +} \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/config.properties b/src/main/webapp/WEB-INF/config.properties index e69de29..e0d6211 100644 --- a/src/main/webapp/WEB-INF/config.properties +++ b/src/main/webapp/WEB-INF/config.properties @@ -0,0 +1,11 @@ +db.pools.max_idle=5 +db.pools.max_total=50 +db.pools.min_total=3 + +mapping-db.ep.name=PF_DB +mapping-db.ep.category=Database + +performance-db.ep.name=PF_DB2 +performance-db.ep.category=PF_DB2 + +dm.importer.computationid=org.gcube.dataanalysis.wps.statisticalmanager.synchserver.mappedclasses.transducerers.PERFORMFISH_DATA_EXTRACTOR \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/web.xml b/src/main/webapp/WEB-INF/web.xml index f1d7ed4..1daeabf 100644 --- a/src/main/webapp/WEB-INF/web.xml +++ b/src/main/webapp/WEB-INF/web.xml @@ -1,5 +1,23 @@ - + + org.gcube.application.perform.service.PerformService + org.glassfish.jersey.servlet.ServletContainer + + + javax.ws.rs.Application + org.gcube.application.perform.service.PerformService + + + jersey.config.server.provider.classnames + org.glassfish.jersey.media.multipart.MultiPartFeature + + + + jersey.config.xml.formatOutput + true + + 1 + org.gcube.application.perform.service.PerformService /gcube/service/* diff --git a/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java b/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java index 4d3c112..ddd8fce 100644 --- a/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java +++ b/src/test/java/org/gcube/application/perform/service/AnagraphicTests.java @@ -1,5 +1,68 @@ package org.gcube.application.perform.service; -public class AnagraphicTests { +import java.net.MalformedURLException; +import java.nio.file.Paths; +import javax.ws.rs.client.WebTarget; +import javax.ws.rs.core.Application; +import javax.ws.rs.core.Response; + +import org.gcube.application.perform.service.engine.utils.ISUtils; +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.glassfish.jersey.test.JerseyTest; +import org.junit.BeforeClass; +import org.junit.Test; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class AnagraphicTests extends JerseyTest{ + + private static final Logger log= LoggerFactory.getLogger(AnagraphicTests.class); + + @BeforeClass + public static void init() throws MalformedURLException { + LocalConfiguration.init(Paths.get("src/main/webapp/WEB-INF/config.properties").toUri().toURL()); + TokenSetter.set("/gcube/preprod/preVRE"); + ISUtils.setFixedToken(SecurityTokenProvider.instance.get()); + + } + + + @Override + protected Application configure() { + + return new PerformService(); + } + + + @Test + public void getBatch() { + WebTarget target= +// target(ServiceConstants.SERVICE_NAME). +// path(ServiceConstants.APPLICATION_PATH). + target(ServiceConstants.Mappings.PATH). + path(ServiceConstants.Mappings.BATCHES_METHOD). + queryParam(ServiceConstants.Mappings.BATCH_NAME_PARAMETER, "gino"). + queryParam(ServiceConstants.Mappings.BATCH_TYPE_PARAMETER, "pino"). + queryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER, 1234); + + System.out.println(target.getUri()); + Response resp=target.request().get(); + System.out.println(resp.getStatus() + " : "+ resp.readEntity(String.class)); + } + + @Test + public void getFarm() { + WebTarget target= +// target(ServiceConstants.SERVICE_NAME). +// path(ServiceConstants.APPLICATION_PATH). + target(ServiceConstants.Mappings.PATH). + path(ServiceConstants.Mappings.FARM_METHOD). + queryParam(ServiceConstants.Mappings.FARM_ID_PARAMETER, 12334). + queryParam(ServiceConstants.Mappings.FARM_UUID_PARAMETER, "pino"); + + System.out.println(target.getUri()); + Response resp=target.request().get(); + System.out.println(resp.getStatus() + " : "+ resp.readEntity(String.class)); + } } diff --git a/src/test/java/org/gcube/application/perform/service/TokenSetter.java b/src/test/java/org/gcube/application/perform/service/TokenSetter.java new file mode 100644 index 0000000..6e200fa --- /dev/null +++ b/src/test/java/org/gcube/application/perform/service/TokenSetter.java @@ -0,0 +1,40 @@ +package org.gcube.application.perform.service; + +import java.util.Properties; + +import org.gcube.common.authorization.library.provider.SecurityTokenProvider; +import org.gcube.common.scope.api.ScopeProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +public class TokenSetter { + + +private static Properties props=new Properties(); + + private static final Logger log= LoggerFactory.getLogger(AnagraphicTests.class); + + static{ + try { + props.load(TokenSetter.class.getResourceAsStream("/tokens.properties")); + } catch (Exception e) { + throw new RuntimeException("YOU NEED TO SET TOKEN FILE IN CONFIGURATION"); + } + } + + + public static void set(String scope){ + try{ + if(!props.containsKey(scope)) throw new RuntimeException("No token found for scope : "+scope); + SecurityTokenProvider.instance.set(props.getProperty(scope)); + }catch(Throwable e){ + log.warn("Unable to set token for scope "+scope,e); + } + ScopeProvider.instance.set(scope); + } + + + + +} + diff --git a/src/test/resources/logback.xml b/src/test/resources/logback.xml new file mode 100644 index 0000000..b70dd26 --- /dev/null +++ b/src/test/resources/logback.xml @@ -0,0 +1,14 @@ + + + + + + %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n + + + + + + + \ No newline at end of file