Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
Commit 7366f898 authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

- small bugfixes

parent 160a8b80
Branches
Tags
No related merge requests found
......@@ -9,10 +9,13 @@ import eu.europa.ec.edelivery.smp.data.dao.UserDao;
import eu.europa.ec.edelivery.smp.data.model.DBServiceMetadata;
import eu.europa.ec.edelivery.smp.data.ui.ServiceMetadataRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceMetadataValidationRO;
import eu.europa.ec.edelivery.smp.data.ui.enums.EntityROStatus;
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.smp.api.exceptions.XmlInvalidAgainstSchemaException;
import eu.europa.ec.smp.api.validators.BdxSmpOasisValidator;
import org.apache.commons.lang3.StringUtils;
import org.apache.commons.lang3.exception.ExceptionUtils;
import org.oasis_open.docs.bdxr.ns.smp._2016._05.DocumentIdentifier;
import org.oasis_open.docs.bdxr.ns.smp._2016._05.ParticipantIdentifierType;
......@@ -22,6 +25,9 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.UnsupportedEncodingException;
import java.util.Optional;
import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.INVALID_REQEUST;
@Service
public class UIServiceMetadataService extends UIServiceBase<DBServiceMetadata, ServiceMetadataRO> {
......@@ -67,7 +73,14 @@ public class UIServiceMetadataService extends UIServiceBase<DBServiceMetadata, S
public ServiceMetadataValidationRO validateServiceMetadata(ServiceMetadataValidationRO serviceMetadataRO) {
byte[] buff;
if (serviceMetadataRO == null) {
throw new SMPRuntimeException(INVALID_REQEUST, "Validate service metadata", "Missing servicemetadata parameter");
} else if (StringUtils.isBlank(serviceMetadataRO.getXmlContent())) {
serviceMetadataRO.setErrorMessage("Service metadata xml must not be empty");
} else {
// validate xml - first byte-array is expected to be in utf8 format
// convert to utf-8 byte array
try {
buff = serviceMetadataRO.getXmlContent().getBytes("UTF-8");
......@@ -96,15 +109,27 @@ public class UIServiceMetadataService extends UIServiceBase<DBServiceMetadata, S
serviceMetadataRO.getParticipantScheme(),
serviceMetadataRO.getParticipantIdentifier());
if (serviceMetadataRO.getStatusAction() == EntityROStatus.NEW.getStatusNumber()){
// check if service metadata already exists
Optional<DBServiceMetadata> exists = serviceMetadataDao.findServiceMetadata(headerPI.getValue(), headerPI.getScheme(),
headerDI.getValue(), headerDI.getScheme());
if (exists.isPresent()){
serviceMetadataRO.setErrorMessage("Document identifier and scheme already exist in database!");
return serviceMetadataRO;
}
}
if (!xmlDI.equals(headerDI)) {
serviceMetadataRO.setErrorMessage("Document identifier and schema do not match!");
serviceMetadataRO.setErrorMessage("Document identifier and scheme do not match!");
return serviceMetadataRO;
}
if (!xmlPI.equals(headerPI)) {
serviceMetadataRO.setErrorMessage("Participant identifier and schema do not match!");
serviceMetadataRO.setErrorMessage("Participant identifier and scheme do not match!");
return serviceMetadataRO;
}
}
return serviceMetadataRO;
}
......
......@@ -5,7 +5,7 @@ import eu.europa.ec.edelivery.smp.data.model.DBDomain;
import eu.europa.ec.edelivery.smp.data.model.DBServiceGroup;
import eu.europa.ec.edelivery.smp.data.model.DBServiceMetadata;
import eu.europa.ec.edelivery.smp.data.model.DBUser;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupExtensionRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupValidationRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceMetadataRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceResult;
......@@ -125,7 +125,7 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
assertNotNull(res);
assertEquals(1, res.getCount().intValue());
ServiceGroupRO sgAdded = res.getServiceEntities().get(0);
ServiceGroupExtensionRO sgExt = testInstance.getServiceGroupExtensionById(sgAdded.getId());
ServiceGroupValidationRO sgExt = testInstance.getServiceGroupExtensionById(sgAdded.getId());
// all table properties should not be null
......@@ -179,7 +179,7 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
assertNotNull(res);
assertEquals(1, res.getCount().intValue());
ServiceGroupRO sgUpdated = res.getServiceEntities().get(0);
ServiceGroupExtensionRO sgExt = testInstance.getServiceGroupExtensionById(sgUpdated.getId());
ServiceGroupValidationRO sgExt = testInstance.getServiceGroupExtensionById(sgUpdated.getId());
assertEquals(1, sgChange.getServiceMetadata().size());
// retrive service metadata xml with special service - it is not retrieve by browsing list
ServiceMetadataRO smdXMLNew = uiServiceMetadataService.getServiceMetadataXMLById(sgUpdated.getServiceMetadata().get(0).getId());
......@@ -242,10 +242,10 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
@Test
public void validateExtensionVaild() throws IOException {
// given
ServiceGroupExtensionRO sg = TestROUtils.getValidExtension();
ServiceGroupValidationRO sg = TestROUtils.getValidExtension();
// when
testInstance.validateExtension(sg);
testInstance.validateServiceGroup(sg);
// then
assertNull(sg.getErrorMessage());
......@@ -255,10 +255,10 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
@Test
public void validateExtensionMultipleVaild() throws IOException {
// given
ServiceGroupExtensionRO sg = TestROUtils.getValidMultipleExtension();
ServiceGroupValidationRO sg = TestROUtils.getValidMultipleExtension();
// when
testInstance.validateExtension(sg);
testInstance.validateServiceGroup(sg);
// then
assertNull(sg.getErrorMessage());
......@@ -268,10 +268,10 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
@Test
public void validateExtensionCustomTextInvaldValid() throws IOException {
// given
ServiceGroupExtensionRO sg = TestROUtils.getValidCustomText();
ServiceGroupValidationRO sg = TestROUtils.getValidCustomText();
// when
testInstance.validateExtension(sg);
testInstance.validateServiceGroup(sg);
// then
assertNotNull(sg.getErrorMessage());
......@@ -281,10 +281,10 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
@Test
public void validateExtensionInvalid() throws IOException {
ServiceGroupExtensionRO sg = TestROUtils.getInvalid();
ServiceGroupValidationRO sg = TestROUtils.getInvalid();
// when
testInstance.validateExtension(sg);
testInstance.validateServiceGroup(sg);
// then
assertNotNull(sg.getErrorMessage());
......@@ -294,10 +294,10 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
@Test
public void validateCustomExtension() throws IOException {
ServiceGroupExtensionRO sg = TestROUtils.getCustomExtension();
ServiceGroupValidationRO sg = TestROUtils.getCustomExtension();
// when
testInstance.validateExtension(sg);
testInstance.validateServiceGroup(sg);
// then
assertNull(sg.getErrorMessage());
......@@ -313,7 +313,7 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
assertNull(sg.getExtension());
// when
ServiceGroupExtensionRO res = testInstance.getServiceGroupExtensionById(sg.getId());
ServiceGroupValidationRO res = testInstance.getServiceGroupExtensionById(sg.getId());
// then
assertNotNull(res);
......@@ -328,7 +328,7 @@ public class UIServiceGroupServiceIntegrationTest extends AbstractServiceIntegra
assertNotNull(sg.getExtension());
// when
ServiceGroupExtensionRO res = testInstance.getServiceGroupExtensionById(sg.getId());
ServiceGroupValidationRO res = testInstance.getServiceGroupExtensionById(sg.getId());
// then
assertNotNull(res);
......
......@@ -2,7 +2,7 @@ package eu.europa.ec.edelivery.smp.testutil;
import eu.europa.ec.edelivery.smp.data.model.DBDomain;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupDomainRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupExtensionRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupValidationRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceMetadataRO;
import eu.europa.ec.edelivery.smp.data.ui.enums.EntityROStatus;
......@@ -74,35 +74,35 @@ public class TestROUtils {
return String.format(SIMPLE_DOCUMENT_XML, partSch, partId,docSch, docId, UUID.randomUUID().toString() );
}
public static ServiceGroupExtensionRO getValidExtension() throws IOException {
public static ServiceGroupValidationRO getValidExtension() throws IOException {
String inputDoc = XmlTestUtils.loadDocumentAsString(RES_PATH + "extensionValidOne.xml");
return getExtensionRO(inputDoc);
}
public static ServiceGroupExtensionRO getValidMultipleExtension() throws IOException {
public static ServiceGroupValidationRO getValidMultipleExtension() throws IOException {
String inputDoc = XmlTestUtils.loadDocumentAsString(RES_PATH + "extensionValidMultiple.xml");
return getExtensionRO(inputDoc);
}
public static ServiceGroupExtensionRO getValidCustomText() throws IOException {
public static ServiceGroupValidationRO getValidCustomText() throws IOException {
String inputDoc = XmlTestUtils.loadDocumentAsString(RES_PATH + "extensionCustomText.xml");
return getExtensionRO(inputDoc);
}
public static ServiceGroupExtensionRO getInvalid() throws IOException {
public static ServiceGroupValidationRO getInvalid() throws IOException {
String inputDoc = XmlTestUtils.loadDocumentAsString(RES_PATH + "extensionInvalid.xml");
return getExtensionRO(inputDoc);
}
public static ServiceGroupExtensionRO getCustomExtension() throws IOException {
public static ServiceGroupValidationRO getCustomExtension() throws IOException {
String inputDoc = XmlTestUtils.loadDocumentAsString(RES_PATH + "extensionCustom.xml");
return getExtensionRO(inputDoc);
}
public static ServiceGroupExtensionRO getExtensionRO(String extension) {
ServiceGroupExtensionRO sg = new ServiceGroupExtensionRO();
public static ServiceGroupValidationRO getExtensionRO(String extension) {
ServiceGroupValidationRO sg = new ServiceGroupValidationRO();
sg.setServiceGroupId((long) 1);
sg.setExtension(extension);
return sg;
......
......@@ -5,20 +5,16 @@ import eu.europa.ec.edelivery.smp.auth.SMPAuthenticationToken;
import eu.europa.ec.edelivery.smp.auth.SMPAuthority;
import eu.europa.ec.edelivery.smp.auth.SMPRole;
import eu.europa.ec.edelivery.smp.data.dao.DomainDao;
import eu.europa.ec.edelivery.smp.data.model.DBDomain;
import eu.europa.ec.edelivery.smp.data.model.DBUser;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupExtensionRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupValidationRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceGroupRO;
import eu.europa.ec.edelivery.smp.data.ui.ServiceResult;
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.ui.UIServiceGroupService;
import eu.europa.ec.edelivery.smp.services.ui.filters.ServiceGroupFilter;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.access.annotation.Secured;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.bind.annotation.*;
......@@ -26,9 +22,6 @@ import org.springframework.web.bind.annotation.*;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.Optional;
import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.DOMAIN_NOT_EXISTS;
/**
* @author Joze Rihtarsic
......@@ -98,18 +91,18 @@ public class ServiceGroupResource {
@PutMapping(produces = {"application/json"})
@RequestMapping(method = RequestMethod.GET, path = "extension/{serviceGroupId}")
@Secured({SMPAuthority.S_AUTHORITY_TOKEN_SYSTEM_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SMP_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SERVICE_GROUP_ADMIN})
public ServiceGroupExtensionRO getExtensionServiceGroupById(@PathVariable Long serviceGroupId) {
public ServiceGroupValidationRO getExtensionServiceGroupById(@PathVariable Long serviceGroupId) {
return uiServiceGroupService.getServiceGroupExtensionById(serviceGroupId);
}
@RequestMapping(path = "extension/validate", method = RequestMethod.POST)
@Secured({SMPAuthority.S_AUTHORITY_TOKEN_SYSTEM_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SMP_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SERVICE_GROUP_ADMIN})
public ServiceGroupExtensionRO getExtensionServiceGroupById(@RequestBody(required = true) ServiceGroupExtensionRO sg) {
return uiServiceGroupService.validateExtension(sg);
public ServiceGroupValidationRO getExtensionServiceGroupById(@RequestBody(required = true) ServiceGroupValidationRO sg) {
return uiServiceGroupService.validateServiceGroup(sg);
}
@RequestMapping(path = "extension/format", method = RequestMethod.POST)
@Secured({SMPAuthority.S_AUTHORITY_TOKEN_SYSTEM_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SMP_ADMIN, SMPAuthority.S_AUTHORITY_TOKEN_SERVICE_GROUP_ADMIN})
public ServiceGroupExtensionRO formatExtension(@RequestBody(required = true) ServiceGroupExtensionRO sg) {
public ServiceGroupValidationRO formatExtension(@RequestBody(required = true) ServiceGroupValidationRO sg) {
return uiServiceGroupService.formatExtension(sg);
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment