From 541b0c4f8d96da3a3b8acdd7050899c1f0e4cedf Mon Sep 17 00:00:00 2001 From: RIHTARSIC Joze <joze.rihtarsic@ext.ec.europa.eu> Date: Mon, 24 Apr 2023 10:52:52 +0200 Subject: [PATCH] fix BDMSL integration configuration --- .../service-group-search-ro.model.ts | 2 + .../service-group-search.component.ts | 18 ++++-- .../service-metadata-search-ro.model.ts | 1 + .../db-scripts/sml-mysql5innodb-data.sql | 20 ++---- .../tomcat-mysql-smp-sml/runCompose.sh | 20 +++--- smp-docker/images/build-docker-images.sh | 6 +- .../sml-mysql5innodb-data.sql | 1 - .../bind/db.test.edelivery.local | 5 +- .../OasisSMPServiceGroup10Handler.java | 9 ++- .../OasisSMPServiceGroup20Handler.java | 50 +++++++-------- .../OasisSMPServiceMetadata20Handler.java | 64 +++++++++++++++++-- ...rceDefToResourceDefinitionROConverter.java | 2 + .../smp/data/ui/ServiceGroupSearchRO.java | 19 ++++++ .../smp/data/ui/ServiceMetadataRO.java | 10 +++ .../smp/services/resource/ResolvedData.java | 10 +++ .../resource/ResourceHandlerService.java | 25 +++++++- .../services/resource/ResourceService.java | 2 - .../ui/UIServiceGroupSearchService.java | 7 +- .../ec/edelivery/smp/utils/SmpUrlBuilder.java | 2 +- .../mysql-4.1_integration_test_data.sql | 34 ++-------- smp-soapui-tests/pom.xml | 2 +- .../smp/controllers/ResourceController.java | 2 - .../database-scripts/mysql5innodb-data.sql | 4 +- 23 files changed, 207 insertions(+), 108 deletions(-) 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 f20d01a53..7c52053e0 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 8b37f78ae..00b295dd0 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 d6260aa78..ddee88c85 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 7b6b00682..65e713cd6 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 580e77db3..dbc70a61c 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 7893de781..b2cc519fb 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 886595706..2b5f16a1b 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 b962adfa8..e8584a632 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 27194d828..e21d9e8ee 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 a72f118b8..45fd0aa99 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 d74138b96..b2c3260b4 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 86796da78..0f57a0856 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 9c1e43716..b6b5cf802 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 53583629d..d123ba811 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 416641217..c073edd9e 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 ed8d673ef..cd1eb50d4 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 1b658fb1b..9a01a2a4d 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 2f1092e35..30c51c187 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 0e564f7b2..3d48b811c 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 154f57978..b560056ed 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 e44b97afa..9a2cb0bb5 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 8ef0a2e85..eeae04b83 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 2097540b3..8e5224b67 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()); -- GitLab