diff --git a/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts index f20d01a53d4aa8c52d24b9375f98f98f4b915b8f..7c52053e0f0bad86674e8ec52738df3ff34ae807 100644 --- a/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts +++ b/smp-angular/src/app/service-group-search/service-group-search-ro.model.ts @@ -4,5 +4,7 @@ import {SearchTableEntity} from "../common/search-table/search-table-entity.mode export interface ServiceGroupSearchRo extends SearchTableEntity { participantIdentifier: string; participantScheme: string; + domainCode?:string; + resourceDefUrlSegment?:string; serviceMetadata: Array<ServiceMetadataSearchRo>; } diff --git a/smp-angular/src/app/service-group-search/service-group-search.component.ts b/smp-angular/src/app/service-group-search/service-group-search.component.ts index 8b37f78ae72747f0276ee99760cd75d95a5a0fce..00b295dd048230a27b6ea46882e34ec5f6638ccc 100644 --- a/smp-angular/src/app/service-group-search/service-group-search.component.ts +++ b/smp-angular/src/app/service-group-search/service-group-search.component.ts @@ -16,6 +16,8 @@ import {HttpClient} from '@angular/common/http'; import {SmpConstants} from "../smp.constants"; import {GlobalLookups} from "../common/global-lookups"; import {SearchTableComponent} from "../common/search-table/search-table.component"; +import {ServiceGroupSearchRo} from "./service-group-search-ro.model"; +import {ServiceMetadataSearchRo} from "./service-metadata-search-ro.model"; @Component({ moduleId: module.id, @@ -96,14 +98,22 @@ export class ServiceGroupSearchComponent implements OnInit, AfterViewInit, After this.initColumns(); } - createServiceGroupURL(row: any) { - return encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier); + createServiceGroupURL(row: ServiceGroupSearchRo) { + + return (!row?.domainCode? "" : row.domainCode+ '/') + + (!row?.resourceDefUrlSegment?"" : row.resourceDefUrlSegment + '/') + + encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier); } - createServiceMetadataURL(row: any, rowSMD: any) { - return encodeURIComponent((!row.participantScheme ? '' : row.participantScheme) + '::' + row.participantIdentifier) + '/services/' + encodeURIComponent((!rowSMD.documentIdentifierScheme ? '' : rowSMD.documentIdentifierScheme) + '::' + rowSMD.documentIdentifier); + createServiceMetadataURL(row: ServiceGroupSearchRo, rowSMD: ServiceMetadataSearchRo) { + + return this.createServiceGroupURL(row) + + '/' + rowSMD.subresourceDefUrlSegment + '/' + + encodeURIComponent((!rowSMD.documentIdentifierScheme ? '' : rowSMD.documentIdentifierScheme) + '::' + rowSMD.documentIdentifier); } + + details(row: any) { this.serviceGroupSearchController.showDetails(row); diff --git a/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts index d6260aa78e784f02c4b08b7469819e42568d2511..ddee88c859d41cc239682e91e6970cb01b56b305 100644 --- a/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts +++ b/smp-angular/src/app/service-group-search/service-metadata-search-ro.model.ts @@ -4,5 +4,6 @@ export interface ServiceMetadataSearchRo extends SearchTableEntity { documentIdentifier: string; documentIdentifierScheme: string; smlSubdomain: string; + subresourceDefUrlSegment?:string; domainCode: string; } diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql b/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql index 7b6b00682297623b2a335cd6bc57d7f281a90768..65e713cd6f27ef953c288162c33a405bad67dc9e 100644 --- a/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql +++ b/smp-docker/compose/tomcat-mysql-smp-sml/properties/db-scripts/sml-mysql5innodb-data.sql @@ -30,26 +30,20 @@ insert into bdmsl_configuration(property, value, description, created_on, last_u ('sml.property.refresh.cronJobExpression','5 */1 * * * *','Properies update', NOW(), NOW()); - insert into bdmsl_subdomain(subdomain_id, subdomain_name,dns_zone, description, participant_id_regexp, dns_record_types, smp_url_schemas, created_on, last_updated_on) values -(1, 'test.edelivery.local', 'test.edelivery.local','Test domain', '^.*$','all','all', NOW(), NOW()), -(2, 'ehealth.test.edelivery.local','test.edelivery.local','Domain for eHealth ','^.*$','all','all',NOW(), NOW()), -(3, 'isaitb.test.edelivery.local','test.edelivery.local','Domain for isaitb ','^.*$','all','all',NOW(), NOW()), -(4, 'peppol.test.edelivery.local', 'test.edelivery.local','Domain for OpenPeppol ', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all', NOW(), NOW()); +(1, 'domain-01.test.edelivery.local','test.edelivery.local','Domain for no trestriction ','^.*$','all','all', NOW(), NOW()), +(2, 'domain-02.test.edelivery.local', 'test.edelivery.local','Domain for with party id restriction', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all', NOW(), NOW()); -INSERT INTO bdmsl_certificate_domain(certificate, crl_url, is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES -('CN=unsecure_root,O=delete_in_production,C=only_for_testing','',1, 2, NOW(), NOW(),1), -('CN=unsecure_root_testTeam,O=delete_in_production,C=only_for_testing','',1, 2, NOW(), NOW(),1), -('CN=rootCNTest,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE','',1, 1, NOW(), NOW(),0), -('CN=rootCNIsa,OU=B4,O=DIGIT,L=Brussels,ST=BE,C=BE','',1, 3, NOW(), NOW(),1), -('CN=AdministratorSML,OU=B4,O=DIGIT,C=BE','',0, 2, NOW(), NOW(),1); +INSERT INTO bdmsl_certificate_domain(truststore_alias, certificate, crl_url, is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES +('CN=smp_domain_01', 'CN=smp_domain_01,O=digit,C=eu','',0, 1, NOW(), NOW(),1), +('CN=smp_domain_02','CN=smp_domain_02,O=digit,C=eu','',0, 2, NOW(), NOW(),1); INSERT INTO bdmsl_certificate (id, certificate_id, valid_from ,valid_until,created_on, last_updated_on ) VALUES -(id, 'CN=SMP_TEST-PRE-SET-EXAMPLE,O=DIGITAL,C=BE:00000000000000000000000000000001',DATE_ADD(NOW(), INTERVAL -3 DAY),DATE_ADD(NOW(), INTERVAL 365 DAY), NOW(), NOW()); +(1, 'CN=smp_domain_01,O=digit,C=eu:0000000000000000000000006443d8a8',DATE_ADD(NOW(), INTERVAL -3 DAY),DATE_ADD(NOW(), INTERVAL 365 DAY), NOW(), NOW()); INSERT INTO bdmsl_smp (smp_id, fk_certificate_id, fk_subdomain_id, endpoint_logical_address, endpoint_physical_address, created_on, last_updated_on ) VALUES -('CEF-SMP-001', 1,1, 'http://localhost:8080/smp/','0.0.0.0',NOW(), NOW()); +('DOMI-SMP-001 ', 1,1, 'http://localhost:8080/smp/','0.0.0.0',NOW(), NOW()); diff --git a/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh b/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh index 580e77db3030daebb3c335318c5d8f49a266b05a..dbc70a61c93fc09fbae2415de91d96d08cf204f6 100755 --- a/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh +++ b/smp-docker/compose/tomcat-mysql-smp-sml/runCompose.sh @@ -1,9 +1,9 @@ #!/bin/bash WORKING_DIR="$(dirname $0)" -SML_INIT_DATABASE="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb.ddl" -SML_INIT_DATABASE_DATA="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql" -SML_INIT_DATABASE_DATA="../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql" +SMP_INIT_DATABASE="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb.ddl" +#SMP_INIT_DATABASE_DATA="../../../smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql" +SMP_INIT_DATABASE_DATA="../../../smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql" # soap ui data PREFIX="smp-sml-tomcat-mysql" SMP_VERSION= @@ -14,7 +14,7 @@ while getopts i:v: option do case "${option}" in - i) SML_INIT_DATABASE_DATA=${OPTARG};; + i) SMP_INIT_DATABASE_DATA=${OPTARG};; v) SMP_VERSION=${OPTARG};; esac done @@ -40,9 +40,9 @@ then fi # create database init script from l -cp "${SML_INIT_DATABASE}" ./properties/db-scripts/mysql5innodb.ddl -cp "${SML_INIT_DATABASE_DATA}" ./properties/db-scripts/mysql5innodb-data.sql - +cp "${SMP_INIT_DATABASE}" ./properties/db-scripts/mysql5innodb.ddl +cp "${SMP_INIT_DATABASE_DATA}" ./properties/db-scripts/mysql5innodb-data.sql +cp function clearOldContainers { @@ -52,12 +52,8 @@ function clearOldContainers { } -# -# Always delete shared-status-folder else weblogic will start to quick! -# because statuses are sync over shared-status-folder folders and it could contain status from previous run. - export SMP_VERSION="${SMP_VERSION}" -echo "Clear old containser" +echo "Clear old containers" clearOldContainers # start " echo "Start compose" diff --git a/smp-docker/images/build-docker-images.sh b/smp-docker/images/build-docker-images.sh index 7893de78151867b422cab249f9199db56aa0d1ec..b2cc519fb97c7b1330a74beadb8cc596eeeabd0b 100755 --- a/smp-docker/images/build-docker-images.sh +++ b/smp-docker/images/build-docker-images.sh @@ -199,9 +199,9 @@ validateAndPrepareArtefacts() { # build docker images # ----------------------------------------------------------------------------- buildImages() { - #buildOracleDatabaseImage - #buildWebLogicOracleImages12 - #buildWebLogicOracleImages14 + buildOracleDatabaseImage + buildWebLogicOracleImages12 + buildWebLogicOracleImages14 buildTomcatMysqlImages buildUtils } diff --git a/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql b/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql index 886595706018257a30380428c0461636d1c8590b..2b5f16a1ba38b2004c1758baba1c2f0ea9ffbf0f 100644 --- a/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql +++ b/smp-docker/images/shared-artefacts/sml-mysql5innodb-data.sql @@ -35,7 +35,6 @@ insert into bdmsl_subdomain(subdomain_id, subdomain_name,dns_zone, description, (1, 'domain-01.test.edelivery.local','test.edelivery.local','Domain for no trestriction ','^.*$','all','all', NOW(), NOW()), (2, 'domain-02.test.edelivery.local', 'test.edelivery.local','Domain for with party id restriction', '^((((0002|0007|0009|0037|0060|0088|0096|0097|0106|0135|0142|9901|9902|9904|9905|9906|9907|9908|9909|9910|9912|9913|9914|9915|9916|9917|9918|9919|9920|9921|9922|9923|9924|9925|9926|9927|9928|9929|9930|9931|9932|9933|9934|9935|9936|9937|9938|9939|9940|9941|9942|9943|9944|9945|9946|9947|9948|9949|9950|9951|9952|9953|9954|9955|9956|9957|0184):).*)|(\\*))$','all','all', NOW(), NOW()); - INSERT INTO bdmsl_certificate_domain(truststore_alias, certificate, crl_url, is_root_ca, fk_subdomain_id, created_on, last_updated_on, is_admin) VALUES ('CN=smp_domain_01', 'CN=smp_domain_01,O=digit,C=eu','',0, 1, NOW(), NOW(),1), ('CN=smp_domain_02','CN=smp_domain_02,O=digit,C=eu','',0, 2, NOW(), NOW(),1); diff --git a/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local b/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local index b962adfa8e4b5c0f42dbcaed90ac2a1fb53ce021..e8584a632178ca715fcaf5177738c3648d4e1d21 100755 --- a/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local +++ b/smp-docker/images/tomcat-mysql-smp-sml/bind/db.test.edelivery.local @@ -12,4 +12,7 @@ test.edelivery.local IN SOA ns.test.edelivery.local. root.test.edelivery.local. $ORIGIN test.edelivery.local. $TTL 60 ; 1 minute ns A 127.0.0.1 -CEF-SMP-002.publisher 60 IN CNAME localhost. \ No newline at end of file +DOMI-SMP-001.publisher.domain-01 60 IN CNAME localhost. +B-b12b56f8cc8aa86c50e853568602d46c.iso6523-actorid-upis.domain-01 60 IN CNAME DOMI-SMP-001.publisher.domain-01.test.edelivery.local. +XLUSTCNMQBBUURV46W66WAOZFI7AATDWKLJEETXSUDRXJX4QAHDA.iso6523-actorid-upis.domain-01 60 IN NAPTR 100 10 "U" "Meta:SMP" "!.*!http://localhost:8080/smp/!" . + diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java index 27194d82883dfff3a9687fb635dbdbfe8b3833de..e21d9e8ee14a399ce3e81dd07614b486baef0511 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup10Handler.java @@ -6,6 +6,7 @@ import eu.europa.ec.dynamicdiscovery.exception.TechnicalException; import eu.europa.ec.dynamicdiscovery.exception.XmlInvalidAgainstSchemaException; import eu.europa.ec.smp.spi.api.SmpDataServiceApi; import eu.europa.ec.smp.spi.api.SmpIdentifierServiceApi; +import eu.europa.ec.smp.spi.api.SmpXmlSignatureApi; import eu.europa.ec.smp.spi.api.model.RequestData; import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; import eu.europa.ec.smp.spi.api.model.ResponseData; @@ -46,7 +47,8 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler { final OasisSMP10ServiceGroupReader serviceGroupReader; - public OasisSMPServiceGroup10Handler(SmpDataServiceApi smpDataApi, SmpIdentifierServiceApi smpIdentifierApi) { + public OasisSMPServiceGroup10Handler(SmpDataServiceApi smpDataApi, + SmpIdentifierServiceApi smpIdentifierApi) { this.smpDataApi = smpDataApi; this.smpIdentifierApi = smpIdentifierApi; serviceGroupReader = new OasisSMP10ServiceGroupReader(); @@ -114,10 +116,15 @@ public class OasisSMPServiceGroup10Handler extends AbstractOasisSMPHandler { public URI buildSMPURLForParticipantAndDocumentIdentifier(ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { LOG.debug("Build SMP url for participant identifier: [{}] and document identifier [{}].", resourceIdentifier, subresourceIdentifier); + + String pathSegment = smpDataApi.getURIPathSegmentForSubresource(OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER); String baseUrl = smpDataApi.getResourceUrl(); String urlEncodedFormatParticipant = smpIdentifierApi.getURLEncodedResourceIdentifier(resourceIdentifier); String urlEncodedFormatDocument = smpIdentifierApi.getURLEncodedSubresourceIdentifier(subresourceIdentifier); + + LOG.debug("Build SMP url from base path [{}], participant identifier: [{}] and document identifier [{}].", + baseUrl, urlEncodedFormatParticipant, urlEncodedFormatDocument); try { return new URIBuilder(baseUrl) .appendPathSegments(urlEncodedFormatParticipant) diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java index a72f118b84e4018458b29d73ca2fe4bad60be4c0..45fd0aa991ba7263b771f731d3647a424a333d45 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceGroup20Handler.java @@ -6,28 +6,32 @@ import eu.europa.ec.dynamicdiscovery.exception.TechnicalException; import eu.europa.ec.dynamicdiscovery.exception.XmlInvalidAgainstSchemaException; import eu.europa.ec.smp.spi.api.SmpDataServiceApi; import eu.europa.ec.smp.spi.api.SmpIdentifierServiceApi; +import eu.europa.ec.smp.spi.api.SmpXmlSignatureApi; import eu.europa.ec.smp.spi.api.model.RequestData; import eu.europa.ec.smp.spi.api.model.ResourceIdentifier; import eu.europa.ec.smp.spi.api.model.ResponseData; -import eu.europa.ec.smp.spi.def.OasisSMPServiceMetadata10; +import eu.europa.ec.smp.spi.converter.ServiceMetadata10Converter; +import eu.europa.ec.smp.spi.def.OasisSMPServiceMetadata20; import eu.europa.ec.smp.spi.exceptions.ResourceException; +import eu.europa.ec.smp.spi.exceptions.SignatureException; import gen.eu.europa.ec.ddc.api.smp20.ServiceGroup; import gen.eu.europa.ec.ddc.api.smp20.aggregate.ServiceReference; import gen.eu.europa.ec.ddc.api.smp20.basic.ID; import gen.eu.europa.ec.ddc.api.smp20.basic.ParticipantID; +import gen.eu.europa.ec.ddc.api.smp20.basic.SMPVersionID; import org.apache.commons.lang3.exception.ExceptionUtils; -import org.apache.hc.core5.net.URIBuilder; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; +import org.w3c.dom.Document; +import javax.xml.transform.TransformerException; import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; -import java.net.URI; -import java.net.URISyntaxException; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; @@ -40,13 +44,17 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { private static final Logger LOG = LoggerFactory.getLogger(OasisSMPServiceGroup20Handler.class); final SmpDataServiceApi smpDataApi; + final SmpXmlSignatureApi signatureApi; final SmpIdentifierServiceApi smpIdentifierApi; final OasisSMP20ServiceGroupReader reader; - public OasisSMPServiceGroup20Handler(SmpDataServiceApi smpDataApi, SmpIdentifierServiceApi smpIdentifierApi) { + public OasisSMPServiceGroup20Handler(SmpDataServiceApi smpDataApi, + SmpIdentifierServiceApi smpIdentifierApi, + SmpXmlSignatureApi signatureApi) { this.smpDataApi = smpDataApi; this.smpIdentifierApi = smpIdentifierApi; + this.signatureApi = signatureApi; this.reader = new OasisSMP20ServiceGroupReader(); } @@ -56,6 +64,8 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { ServiceGroup serviceGroup = new ServiceGroup(); + serviceGroup.setSMPVersionID(new SMPVersionID()); + serviceGroup.getSMPVersionID().setValue("2.0"); serviceGroup.setParticipantID(new ParticipantID()); serviceGroup.getParticipantID().setValue(identifier.getValue()); serviceGroup.getParticipantID().setSchemeID(identifier.getScheme()); @@ -85,11 +95,14 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { serviceGroup.getServiceReferences().clear(); serviceGroup.getServiceReferences().addAll(buildReferences(identifier)); - try { - reader.serializeNative(serviceGroup, responseData.getOutputStream(), false); - } catch (TechnicalException e) { - throw new ResourceException(PARSE_ERROR, "Can not marshal extension for service group: [" + identifier + "]. Error: " + ExceptionUtils.getRootCauseMessage(e), e); + try { + Document doc = reader.objectToDocument(serviceGroup); + signatureApi.createEnvelopedSignature(resourceData, doc.getDocumentElement(), Collections.emptyList()); + ServiceMetadata10Converter.serialize(doc, responseData.getOutputStream()); + } catch (SignatureException | TechnicalException | TransformerException e) { + throw new ResourceException(PROCESS_ERROR, "Error occurred while signing the service group 2.0 message!: [" + + identifier + "]. Error: " + ExceptionUtils.getRootCauseMessage(e), e); } } @@ -97,7 +110,8 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { private List<ServiceReference> buildReferences(ResourceIdentifier resourceIdentifier) { LOG.debug("Build build References identifier [{}].", resourceIdentifier); // get subresource identifiers for document type - List<ResourceIdentifier> subResourceIdentifier = smpDataApi.getSubResourceIdentifiers(resourceIdentifier, OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER); + List<ResourceIdentifier> subResourceIdentifier = smpDataApi.getSubResourceIdentifiers(resourceIdentifier, + OasisSMPServiceMetadata20.RESOURCE_IDENTIFIER); List<ServiceReference> referenceIds = new ArrayList<>(); for (ResourceIdentifier subresId : subResourceIdentifier) { ServiceReference reference = new ServiceReference(); @@ -110,22 +124,6 @@ public class OasisSMPServiceGroup20Handler extends AbstractOasisSMPHandler { return referenceIds; } - public URI buildSMPURLForParticipantAndDocumentIdentifier(ResourceIdentifier resourceIdentifier, ResourceIdentifier subresourceIdentifier) throws ResourceException { - LOG.debug("Build SMP url for participant identifier: [{}] and document identifier [{}].", resourceIdentifier, subresourceIdentifier); - String pathSegment = smpDataApi.getURIPathSegmentForSubresource(OasisSMPServiceMetadata10.RESOURCE_IDENTIFIER); - String baseUrl = smpDataApi.getResourceUrl(); - String urlEncodedFormatParticipant = smpIdentifierApi.getURLEncodedResourceIdentifier(resourceIdentifier); - String urlEncodedFormatDocument = smpIdentifierApi.getURLEncodedSubresourceIdentifier(subresourceIdentifier); - try { - return new URIBuilder(baseUrl) - .appendPathSegments(urlEncodedFormatParticipant) - .appendPathSegments(pathSegment) - .appendPathSegments(urlEncodedFormatDocument).build(); - } catch (URISyntaxException e) { - throw new ResourceException(INTERNAL_ERROR, "Can not build SMP document URL path! " + ExceptionUtils.getMessage(e), e); - } - } - @Override public void storeResource(RequestData resourceData, ResponseData responseData) throws ResourceException { diff --git a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java index d74138b964e8b23087977d2583a4f889051da322..b2c3260b4594ac51e5b63473d5c0e18c2d93c3f6 100644 --- a/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java +++ b/smp-resource-extensions/oasis-smp-spi/src/main/java/eu/europa/ec/smp/spi/handler/OasisSMPServiceMetadata20Handler.java @@ -15,8 +15,11 @@ import eu.europa.ec.smp.spi.exceptions.ResourceException; import eu.europa.ec.smp.spi.exceptions.SignatureException; import eu.europa.ec.smp.spi.validation.ServiceMetadata20Validator; import gen.eu.europa.ec.ddc.api.smp20.ServiceMetadata; -import gen.eu.europa.ec.ddc.api.smp20.basic.ParticipantID; -import gen.eu.europa.ec.ddc.api.smp20.basic.ServiceID; +import gen.eu.europa.ec.ddc.api.smp20.aggregate.Certificate; +import gen.eu.europa.ec.ddc.api.smp20.aggregate.Endpoint; +import gen.eu.europa.ec.ddc.api.smp20.aggregate.Process; +import gen.eu.europa.ec.ddc.api.smp20.aggregate.ProcessMetadata; +import gen.eu.europa.ec.ddc.api.smp20.basic.*; import org.apache.commons.lang3.exception.ExceptionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -29,6 +32,7 @@ import java.io.BufferedInputStream; import java.io.ByteArrayInputStream; import java.io.IOException; import java.io.InputStream; +import java.time.OffsetDateTime; import java.util.Collections; import java.util.List; @@ -64,12 +68,64 @@ public class OasisSMPServiceMetadata20Handler extends AbstractOasisSMPHandler { ResourceIdentifier subresourceIdentifier = getSubresourceIdentifier(resourceData); ServiceMetadata serviceMetadata = new ServiceMetadata(); + serviceMetadata.setSMPVersionID(new SMPVersionID()); + serviceMetadata.getSMPVersionID().setValue("2.0"); serviceMetadata.setParticipantID(new ParticipantID()); serviceMetadata.getParticipantID().setValue(identifier.getValue()); serviceMetadata.getParticipantID().setSchemeID(identifier.getScheme()); serviceMetadata.setServiceID(new ServiceID()); - serviceMetadata.getParticipantID().setValue(subresourceIdentifier.getValue()); - serviceMetadata.getParticipantID().setSchemeID(subresourceIdentifier.getScheme()); + serviceMetadata.getServiceID().setValue(subresourceIdentifier.getValue()); + serviceMetadata.getServiceID().setSchemeID(subresourceIdentifier.getScheme()); + ProcessMetadata processMetadata = new ProcessMetadata(); + serviceMetadata.getProcessMetadatas().add(processMetadata); + Process process = new Process(); + process.setID(new ID()); + process.getID().setValue("Service"); + process.getID().setSchemeID("service-namespace"); + processMetadata.getProcesses().add(process); + Endpoint endpoint = new Endpoint(); + endpoint.setExpirationDate(new ExpirationDate()); + endpoint.setActivationDate(new ActivationDate()); + endpoint.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1)); + endpoint.getActivationDate().setValue(OffsetDateTime.now().minusDays(1)); + endpoint.setAddressURI(new AddressURI()); + endpoint.getAddressURI().setValue("http://test.ap.local/msh"); + endpoint.setTransportProfileID(new TransportProfileID()); + endpoint.getTransportProfileID().setValue("bdxr-transport-ebms3-as4-v1p0"); + Certificate certEnc = new Certificate(); + certEnc.setExpirationDate(new ExpirationDate()); + certEnc.setActivationDate(new ActivationDate()); + certEnc.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1)); + certEnc.getActivationDate().setValue(OffsetDateTime.now().minusDays(1)); + certEnc.setSubject(new Subject()); + certEnc.setIssuer(new Issuer()); + certEnc.setTypeCode(new TypeCode()); + certEnc.setContentBinaryObject(new ContentBinaryObject()); + certEnc.getSubject().setValue("CN=test-ap-enc,OU=edelivery,O=digit,C=EU"); + certEnc.getIssuer().setValue("CN=test-ap-enc,OU=edelivery,O=digit,C=EU"); + certEnc.getTypeCode().setValue("encryption"); + certEnc.getContentBinaryObject().setValue("Put the real certificate data here".getBytes()); + certEnc.getContentBinaryObject().setMimeCode("application/base64"); + + Certificate certSig = new Certificate(); + certSig.setExpirationDate(new ExpirationDate()); + certSig.setActivationDate(new ActivationDate()); + certSig.getExpirationDate().setValue(OffsetDateTime.now().plusYears(1)); + certSig.getActivationDate().setValue(OffsetDateTime.now().minusDays(1)); + certSig.setTypeCode(new TypeCode()); + certSig.setContentBinaryObject(new ContentBinaryObject()); + certSig.setSubject(new Subject()); + certSig.setIssuer(new Issuer()); + certSig.getSubject().setValue("CN=test-ap-signature,OU=edelivery,O=digit,C=EU"); + certSig.getIssuer().setValue("CN=test-ap-signature,OU=edelivery,O=digit,C=EU"); + certSig.getTypeCode().setValue("signature"); + certSig.getContentBinaryObject().setValue("Put the real certificate data here".getBytes()); + certSig.getContentBinaryObject().setMimeCode("application/base64"); + endpoint.getCertificates().add(certEnc); + endpoint.getCertificates().add(certSig); + processMetadata.getEndpoints().add(endpoint); + + try { reader.serializeNative(serviceMetadata, responseData.getOutputStream(), true); } catch (TechnicalException e) { diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java index 86796da78e4a1c74ab10d29ad569e51819ca1a25..0f57a0856a5f9d900257edfc3a6e30fca4583a67 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/conversion/DBResourceDefToResourceDefinitionROConverter.java @@ -37,6 +37,8 @@ public class DBResourceDefToResourceDefinitionROConverter implements Converter<D List<SubresourceDefinitionRO> resourceDefinitionROList = source.getSubresources().stream().map(resourceDef -> conversionService.convert(resourceDef, SubresourceDefinitionRO.class) ).collect(Collectors.toList()); + + target.getSubresourceDefinitions().addAll(resourceDefinitionROList); } catch (IllegalAccessException | InvocationTargetException e) { LOG.error("Error occurred while converting DBResourceDef", e); diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java index 9c1e43716d7f24d20751fd72d693aa911e0a81eb..b6b5cf802200ba5febe7215e0d039dd48f80ea2d 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceGroupSearchRO.java @@ -16,6 +16,9 @@ public class ServiceGroupSearchRO extends BaseRO { private static final long serialVersionUID = 9008583888835630016L; private Long id; + + private String domainCode; + private String resourceDefUrlSegment; private String participantIdentifier; private String participantScheme; private List<ServiceMetadataRO> lstServiceMetadata = new ArrayList<>(); @@ -45,6 +48,22 @@ public class ServiceGroupSearchRO extends BaseRO { this.participantScheme = participantScheme; } + public String getDomainCode() { + return domainCode; + } + + public void setDomainCode(String domainCode) { + this.domainCode = domainCode; + } + + public String getResourceDefUrlSegment() { + return resourceDefUrlSegment; + } + + public void setResourceDefUrlSegment(String resourceDefUrlSegment) { + this.resourceDefUrlSegment = resourceDefUrlSegment; + } + public List<ServiceMetadataRO> getServiceMetadata() { return lstServiceMetadata; } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java index 53583629da4ed758c99532bc9a02e1b9ad7b9fc3..d123ba8114d1f7383d7dde9bfde374caa6891cb4 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/data/ui/ServiceMetadataRO.java @@ -17,6 +17,8 @@ public class ServiceMetadataRO extends BaseRO { String documentIdentifierScheme; String smlSubdomain; String domainCode; + + String subresourceDefUrlSegment; private int xmlContentStatus = EntityROStatus.PERSISTED.getStatusNumber(); String xmlContent; @@ -36,6 +38,14 @@ public class ServiceMetadataRO extends BaseRO { this.documentIdentifier = documentIdentifier; } + public String getSubresourceDefUrlSegment() { + return subresourceDefUrlSegment; + } + + public void setSubresourceDefUrlSegment(String subresourceDefUrlSegment) { + this.subresourceDefUrlSegment = subresourceDefUrlSegment; + } + public String getDocumentIdentifierScheme() { return StringUtils.isEmpty(documentIdentifierScheme)?null: documentIdentifierScheme; diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java index 4166412177d44222972a7f9d545ec2c4776b0241..c073edd9e53cbb4441ae696fda3ecd5428e4f09d 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResolvedData.java @@ -1,6 +1,7 @@ package eu.europa.ec.edelivery.smp.services.resource; import eu.europa.ec.edelivery.smp.data.model.DBDomain; +import eu.europa.ec.edelivery.smp.data.model.DBGroup; import eu.europa.ec.edelivery.smp.data.model.doc.DBResource; import eu.europa.ec.edelivery.smp.data.model.doc.DBSubresource; import eu.europa.ec.edelivery.smp.data.model.ext.DBResourceDef; @@ -9,6 +10,7 @@ import eu.europa.ec.edelivery.smp.data.model.ext.DBSubresourceDef; public class ResolvedData { boolean resolved; DBDomain domain; + DBGroup group; DBResourceDef resourceDef; DBSubresourceDef subResourceDef; DBResource resource; @@ -61,4 +63,12 @@ public class ResolvedData { public void setResolved(boolean resolved) { this.resolved = resolved; } + + public DBGroup getGroup() { + return group; + } + + public void setGroup(DBGroup group) { + this.group = group; + } } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java index ed8d673ef9b5e7d6e16d4515e8f09bb57463d893..cd1eb50d472efe1f779a04289f3fb7ec695efc8e 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceHandlerService.java @@ -1,7 +1,10 @@ package eu.europa.ec.edelivery.smp.services.resource; +import eu.europa.ec.edelivery.smp.data.dao.GroupDao; import eu.europa.ec.edelivery.smp.data.dao.ResourceMemberDao; +import eu.europa.ec.edelivery.smp.data.model.DBDomain; +import eu.europa.ec.edelivery.smp.data.model.DBGroup; import eu.europa.ec.edelivery.smp.data.model.doc.DBDocument; import eu.europa.ec.edelivery.smp.data.model.doc.DBDocumentVersion; import eu.europa.ec.edelivery.smp.data.model.doc.DBResource; @@ -13,6 +16,7 @@ import eu.europa.ec.edelivery.smp.exceptions.ErrorCode; import eu.europa.ec.edelivery.smp.exceptions.SMPRuntimeException; import eu.europa.ec.edelivery.smp.logging.SMPLogger; import eu.europa.ec.edelivery.smp.logging.SMPLoggerFactory; +import eu.europa.ec.edelivery.smp.services.SMLIntegrationService; import eu.europa.ec.edelivery.smp.services.spi.data.SpiResponseData; import eu.europa.ec.edelivery.smp.servlet.ResourceRequest; import eu.europa.ec.edelivery.smp.servlet.ResourceResponse; @@ -44,10 +48,15 @@ public class ResourceHandlerService extends AbstractResourceHandler { final ResourceMemberDao resourceMemberDao; + final GroupDao groupDao; + final SMLIntegrationService integrationService; + public ResourceHandlerService(List<ResourceDefinitionSpi> resourceDefinitionSpiList, ResourceStorage resourceStorage, - ResourceMemberDao resourceMemberDao) { + ResourceMemberDao resourceMemberDao, GroupDao groupDao,SMLIntegrationService integrationService) { super(resourceDefinitionSpiList, resourceStorage); this.resourceMemberDao = resourceMemberDao; + this.groupDao = groupDao; + this.integrationService = integrationService; } public void readResource(ResourceRequest resourceRequest, @@ -94,6 +103,7 @@ public class ResourceHandlerService extends AbstractResourceHandler { ResolvedData resolvedData = resourceRequest.getResolvedData(); DBResource resource = resolvedData.getResource(); + DBDomain domain = resolvedData.getDomain(); ResourceHandlerSpi handlerSpi = getResourceHandler(resolvedData.getResourceDef()); boolean isNewResource = resource.getId() == null; @@ -141,8 +151,18 @@ public class ResourceHandlerService extends AbstractResourceHandler { DBResource managedResource = resourceStorage.addDocumentVersionForResource(resource, documentVersion); if (isNewResource) { - resourceRequest.getOwnerHttpParameter(); resourceMemberDao.setAdminMemberShip(user, managedResource); + if (managedResource.getGroup() == null) { + + if (resolvedData.getGroup() != null) { + managedResource.setGroup(resolvedData.getGroup()); + } else { + // if group is empty add first group from domain + List<DBGroup> groupList = groupDao.getAllGroupsForDomain(domain); + managedResource.setGroup(groupList.get(0)); + } + } + integrationService.registerParticipant(managedResource, domain); } } @@ -211,6 +231,7 @@ public class ResourceHandlerService extends AbstractResourceHandler { // locate the resource handler ResolvedData resolvedData = resourceRequest.getResolvedData(); DBResource resource = resolvedData.getResource(); + integrationService.unregisterParticipant(resource, resolvedData.domain); resourceStorage.deleteResource(resource); } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java index 1b658fb1bad0dff5f622c54419c3429a8f00fd75..9a01a2a4de7cc51fd84fba071fc8ee84e17bf178 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/resource/ResourceService.java @@ -127,8 +127,6 @@ public class ResourceService { } else if (isNotBlank(owner)) { LOG.warn("Owner [{}] is given for existing resource [{}]. The owner parameter is ignored!", owner, resolvedData.getResource()); } - - resourceHandlerService.createResource(ownerUser, resourceRequest, resourceResponse); } diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java index 2f1092e35459f261276086e42c58c0f69e65e6bc..30c51c1876bc92222e7aeec453842c5b5a641e77 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/services/ui/UIServiceGroupSearchService.java @@ -4,7 +4,6 @@ import eu.europa.ec.edelivery.smp.data.dao.BaseDao; import eu.europa.ec.edelivery.smp.data.dao.DomainDao; import eu.europa.ec.edelivery.smp.data.dao.ResourceDao; import eu.europa.ec.edelivery.smp.data.dao.UserDao; -import eu.europa.ec.edelivery.smp.data.model.DBDomain; import eu.europa.ec.edelivery.smp.data.model.doc.DBResource; import eu.europa.ec.edelivery.smp.data.model.user.DBUser; import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupSearchRO; @@ -92,16 +91,16 @@ public class UIServiceGroupSearchService extends UIServiceBase<DBResource, Servi ServiceGroupSearchRO serviceGroupRo = new ServiceGroupSearchRO(); serviceGroupRo.setId(resource.getId()); + serviceGroupRo.setDomainCode(resource.getDomainResourceDef().getDomain().getDomainCode()); + serviceGroupRo.setResourceDefUrlSegment(resource.getDomainResourceDef().getResourceDef().getUrlSegment()); serviceGroupRo.setParticipantIdentifier(resource.getIdentifierValue()); serviceGroupRo.setParticipantScheme(resource.getIdentifierScheme()); - DBDomain domain = resource.getDomainResourceDef().getDomain(); resource.getSubresources().forEach(subresource -> { ServiceMetadataRO smdro = new ServiceMetadataRO(); + smdro.setSubresourceDefUrlSegment(subresource.getSubresourceDef().getUrlSegment()); smdro.setDocumentIdentifier(subresource.getIdentifierValue()); smdro.setDocumentIdentifierScheme(subresource.getIdentifierScheme()); - smdro.setDomainCode(domain.getDomainCode()); - smdro.setSmlSubdomain(domain.getSmlSubdomain()); serviceGroupRo.getServiceMetadata().add(smdro); }); diff --git a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java index 0e564f7b2e09e8b66b4d5ff2a355f8cd8d3cfe37..3d48b811c06d2889e4c2afab2f4f0774a8115bdc 100644 --- a/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java +++ b/smp-server-library/src/main/java/eu/europa/ec/edelivery/smp/utils/SmpUrlBuilder.java @@ -131,7 +131,7 @@ public class SmpUrlBuilder { public UriComponentsBuilder getSMPUrlBuilder() { UriComponentsBuilder uriBuilder = ServletUriComponentsBuilder.fromCurrentRequestUri(); - uriBuilder = uriBuilder.replacePath(getUrlContext()); + // uriBuilder = uriBuilder.replacePath(getUrlContext()); return uriBuilder; } diff --git a/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql b/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql index 154f5797879c55553207aca2a963ddcfb55ac2cc..b560056ed099d2b01f6dada215524eee387471cb 100644 --- a/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql +++ b/smp-soapui-tests/groovy/mysql-4.1_integration_test_data.sql @@ -37,7 +37,7 @@ insert into SMP_CERTIFICATE (ID, CERTIFICATE_ID, SUBJECT, ISSUER, SERIALNUMBER,V insert into SMP_DOMAIN (ID, DOMAIN_CODE, VISIBILITY, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_CLIENT_KEY_ALIAS, SML_CLIENT_CERT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values -(1, 'testdomain','PUBLIC', 'test-domain', 'CEF-SMP-002','sample_key','smp_domain_01',1,0, NOW(), NOW()); +(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,1, NOW(), NOW()); insert into SMP_EXTENSION ( ID, IDENTIFIER, IMPLEMENTATION_NAME, NAME, VERSION, DESCRIPTION, CREATED_ON, LAST_UPDATED_ON) values (1, 'edelivery-oasis-smp-extension', 'OasisSMPExtension','Oasis SMP 1.0 and 2.0','1.0', 'Oasis SMP 1.0 and 2.0 extension', NOW(), NOW()); @@ -57,8 +57,8 @@ insert into SMP_GROUP (ID, FK_DOMAIN_ID, NAME, VISIBILITY, CREATED_ON, LAST_UPDA insert into SMP_DOCUMENT (ID, CURRENT_VERSION, MIME_TYPE, NAME,CREATED_ON, LAST_UPDATED_ON) values (1, 1, 'text/xml', 'service-group', NOW(), NOW()), -(2, 1, 'text/xml', 'service-metadta', NOW(), NOW()), -(3, 0, 'text/xml', 'service-metadta', NOW(), NOW()) +(2, 1, 'text/xml', 'service-metadata', NOW(), NOW()), +(3, 0, 'text/xml', 'service-metadata', NOW(), NOW()) ; insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT, CREATED_ON, LAST_UPDATED_ON) values @@ -66,27 +66,7 @@ insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT, (2,2, 1, '<ServiceMetadata xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><Redirect href="http://localhost:8080/url"><CertificateUID/></Redirect></ServiceMetadata>' , NOW(), NOW()); insert into SMP_RESOURCE ( ID, FK_GROUP_ID, FK_DOCUMENT_ID, FK_DOREDEF_ID, IDENTIFIER_SCHEME, IDENTIFIER_VALUE, SML_REGISTERED, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values -(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 0, 'PUBLIC', NOW(), NOW()), -(2, 1, 3, 1, 'iso6523-actorid-upis', '0088:01', 0, 'PUBLIC', NOW(), NOW()), -(3, 1, 1, 1, 'iso6523-actorid-upis', '0088:02', 0, 'PUBLIC', NOW(), NOW()), -(4, 1, 1, 1, 'iso6523-actorid-upis', '0088:03', 0, 'PUBLIC', NOW(), NOW()), -(5, 1, 1, 1, 'iso6523-actorid-upis', '0088:04', 0, 'PUBLIC', NOW(), NOW()), -(6, 1, 1, 1, 'iso6523-actorid-upis', '0088:05', 0, 'PUBLIC', NOW(), NOW()), -(7, 1, 1, 1, 'iso6523-actorid-upis', '0088:06', 0, 'PUBLIC', NOW(), NOW()), -(8, 1, 1, 1, 'iso6523-actorid-upis', '0088:07', 0, 'PUBLIC', NOW(), NOW()), -(9, 1, 1, 1, 'iso6523-actorid-upis', '0088:08', 0, 'PUBLIC', NOW(), NOW()), -(10, 1, 1, 1, 'iso6523-actorid-upis', '0088:09', 0, 'PUBLIC', NOW(), NOW()), -(11, 1, 1, 1, 'iso6523-actorid-upis', '0088:10', 0, 'PUBLIC', NOW(), NOW()), -(12, 1, 1, 1, 'iso6523-actorid-upis', '0088:11', 0, 'PUBLIC', NOW(), NOW()), -(13, 1, 1, 1, 'iso6523-actorid-upis', '0088:12', 0, 'PUBLIC', NOW(), NOW()), -(14, 1, 1, 1, 'iso6523-actorid-upis', '0088:13', 0, 'PUBLIC', NOW(), NOW()), -(15, 1, 1, 1, 'iso6523-actorid-upis', '0088:14', 0, 'PUBLIC', NOW(), NOW()), -(16, 1, 1, 1, 'iso6523-actorid-upis', '0088:15', 0, 'PUBLIC', NOW(), NOW()), -(17, 1, 1, 1, 'iso6523-actorid-upis', '0088:16', 0, 'PUBLIC', NOW(), NOW()), -(18, 1, 1, 1, 'iso6523-actorid-upis', '0088:17', 0, 'PUBLIC', NOW(), NOW()), -(19, 1, 1, 1, 'iso6523-actorid-upis', '0088:18', 0, 'PUBLIC', NOW(), NOW()), -(20, 1, 1, 1, 'iso6523-actorid-upis', '0088:19', 0, 'PUBLIC', NOW(), NOW()) -; +(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 1, 'PUBLIC', NOW(), NOW()); insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, IDENTIFIER_VALUE, IDENTIFIER_SCHEME, CREATED_ON, LAST_UPDATED_ON) values (1, 1, 1, 2, 'service-value', 'service-schema', NOW(), NOW()); @@ -95,11 +75,7 @@ insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, I (2, 1, 1, 2, 'service-value2', 'service-schema2', NOW(), NOW()); insert into SMP_RESOURCE_MEMBER (ID, FK_RESOURCE_ID, FK_USER_ID, MEMBERSHIP_ROLE, CREATED_ON, LAST_UPDATED_ON) values -(1, 1, 2, 'ADMIN', NOW(), NOW()), -(2, 2, 1, 'ADMIN', NOW(), NOW()), -(3, 3, 2, 'ADMIN', NOW(), NOW()), -(4, 4, 2, 'ADMIN', NOW(), NOW()), -(5, 5, 2, 'ADMIN', NOW(), NOW()) +(1, 1, 2, 'ADMIN', NOW(), NOW()) ; insert into SMP_GROUP_MEMBER (ID, FK_GROUP_ID, FK_USER_ID, MEMBERSHIP_ROLE, CREATED_ON, LAST_UPDATED_ON) values diff --git a/smp-soapui-tests/pom.xml b/smp-soapui-tests/pom.xml index e44b97afa51147ed3c9e026a8241535dfcc83fb9..9a2cb0bb5e9eeb8e0db466f5a6682ecf6f94ec47 100644 --- a/smp-soapui-tests/pom.xml +++ b/smp-soapui-tests/pom.xml @@ -115,7 +115,7 @@ has its own groovy library --> <soapuiProperties> <property> <name>soapui.scripting.library</name> - <value>${basedir}/src/main/groovy</value> + <value>${basedir}/src/main/java</value> </property> <property> <name>soapui.logroot</name> diff --git a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java index 8ef0a2e85569f72fa3cc28d4dcfba053e4ed80d3..eeae04b83acef920876b61f5d5ecd32d3e2a9ad0 100644 --- a/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java +++ b/smp-webapp/src/main/java/eu/europa/ec/edelivery/smp/controllers/ResourceController.java @@ -171,8 +171,6 @@ public class ResourceController { } } - - protected ResourceResponse fromServletResponse(HttpServletResponse httpRes) { ResourceResponse resourceResponse = new ResourceResponse(httpRes); // try to open the output stream diff --git a/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql b/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql index 2097540b3f00a0433ea2aea6e2ac7f06a2092134..8e5224b6739df102b3386bc3209fd486a58d2ef7 100644 --- a/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql +++ b/smp-webapp/src/main/smp-setup/database-scripts/mysql5innodb-data.sql @@ -8,7 +8,7 @@ insert into SMP_CREDENTIAL (ID, FK_USER_ID, CREDENTIAL_ACTIVE, CREDENTIAL_NAME, insert into SMP_DOMAIN (ID, DOMAIN_CODE, VISIBILITY, SML_SUBDOMAIN, SML_SMP_ID, SIGNATURE_KEY_ALIAS, SML_CLIENT_KEY_ALIAS, SML_CLIENT_CERT_AUTH,SML_REGISTERED, CREATED_ON, LAST_UPDATED_ON) values -(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,0, NOW(), NOW()); +(1, 'testdomain','PUBLIC', 'test-domain', 'DOMI-SMP-001','sample_key','smp_domain_01',1,1, NOW(), NOW()); insert into SMP_GROUP (ID, FK_DOMAIN_ID, NAME, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values (1, 1, 'Test group', 'PUBLIC', NOW(), NOW()); @@ -37,7 +37,7 @@ insert into SMP_DOCUMENT_VERSION (ID, FK_DOCUMENT_ID, VERSION, DOCUMENT_CONTENT, (2,2, 1, '<ServiceMetadata xmlns="http://docs.oasis-open.org/bdxr/ns/SMP/2016/05"><Redirect href="http://localhost:8080/url"><CertificateUID/></Redirect></ServiceMetadata>' , NOW(), NOW()); insert into SMP_RESOURCE ( ID, FK_GROUP_ID, FK_DOCUMENT_ID, FK_DOREDEF_ID, IDENTIFIER_SCHEME, IDENTIFIER_VALUE, SML_REGISTERED, VISIBILITY, CREATED_ON, LAST_UPDATED_ON) values -(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 0, 'PUBLIC', NOW(), NOW()); +(1, 1, 1, 1, 'iso6523-actorid-upis', '0088:777002abzz777', 1, 'PUBLIC', NOW(), NOW()); insert into SMP_SUBRESOURCE (ID, FK_RESOURCE_ID,FK_SUREDEF_ID, FK_DOCUMENT_ID, IDENTIFIER_VALUE, IDENTIFIER_SCHEME, CREATED_ON, LAST_UPDATED_ON) values (1, 1, 1, 2, 'service-value', 'service-schema', NOW(), NOW());