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 0f5a9097 authored by Joze RIHTARSIC's avatar Joze RIHTARSIC
Browse files

- change clobs with blobs - to preserver XML chars while serializing to database

- update
parent 61c180f7
Branches
Tags
No related merge requests found
Showing
with 142 additions and 78 deletions
......@@ -24,7 +24,7 @@
<modules>
<module>smp-parent-pom</module>
<module>smp-api</module>
<module>smp-angular</module>
<!-- module>smp-angular</module -->
<module>smp-server-library</module>
<module>smp-webapp</module>
</modules>
......
......@@ -22,6 +22,8 @@ import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import java.io.BufferedInputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.StringReader;
import java.net.URL;
......@@ -59,9 +61,9 @@ public class BdxSmpOasisValidator {
return validator.get();
}
public static void validateXSD(String xmlBody) throws XmlInvalidAgainstSchemaException {
public static void validateXSD(byte[] xmlBody) throws XmlInvalidAgainstSchemaException {
try {
getValidator().validate(new StreamSource(new StringReader(xmlBody)));
getValidator().validate(new StreamSource(new ByteArrayInputStream(xmlBody)));
} catch (SAXException | IOException e) {
throw new XmlInvalidAgainstSchemaException(e.getMessage(), e);
}
......
......@@ -38,7 +38,7 @@ public class BdxSmpOasisValidatorTest {
@Parameters({"ServiceMetadata_OK.xml","ServiceGroup_OK.xml"})
public void testValidatePositive(String xmlFilename) throws IOException, XmlInvalidAgainstSchemaException {
// given
String xmlBody = loadXMLFile(xmlFilename);
byte[] xmlBody = loadXMLFileAsByteArray(xmlFilename);
// when
BdxSmpOasisValidator.validateXSD(xmlBody);
......@@ -61,7 +61,7 @@ public class BdxSmpOasisValidatorTest {
@Parameters(method = "negativeCases")
public void testValidateNegative(String xmlFilename, String output) throws IOException {
// given
String xmlBody = loadXMLFile(xmlFilename);
byte[] xmlBody = loadXMLFileAsByteArray(xmlFilename);
// when
try {
......@@ -78,4 +78,9 @@ public class BdxSmpOasisValidatorTest {
URL fileUrl = BdxSmpOasisValidatorTest.class.getResource("/XMLValidation/"+path);
return IOUtils.toString(fileUrl.openStream(), UTF_8);
}
public byte[] loadXMLFileAsByteArray(String path) throws IOException {
URL fileUrl = BdxSmpOasisValidatorTest.class.getResource("/XMLValidation/"+path);
return IOUtils.toByteArray(fileUrl.openStream());
}
}
......@@ -86,19 +86,18 @@
<hibernate.version>5.2.13.Final</hibernate.version>
<hibernate-jpa.version>1.0.2.Final</hibernate-jpa.version>
<hibernate.validator.version>6.0.13.Final</hibernate.validator.version>
<hibernate.annotations.version>3.5.6-Final</hibernate.annotations.version>
<h2.version>1.4.187</h2.version>
<oracle.version>12.1.0.1</oracle.version>
<mysql.version>5.1.45</mysql.version>
<soapui.plugin.version>5.1.2</soapui.plugin.version>
<commons-net.version>1.4.1</commons-net.version>
<ant-commons-net.version>1.6.5</ant-commons-net.version>
<jetty.version>8.1.15.v20140411</jetty.version>
<!-- jetty.version>8.1.15.v20140411</jetty.version -->
<servlet-api.version>3.0.1</servlet-api.version>
<metro.version>2.2.1-1</metro.version>
<commons-io.version>2.4</commons-io.version>
<junitparams.version>1.0.5</junitparams.version>
<lombok.version>1.16.16</lombok.version>
<!-- lombok.version>1.16.16</lombok.version -->
<xmlunit.version>2.5.1</xmlunit.version>
<hamcrest.version>2.0.0.0</hamcrest.version>
<jackson.version>2.9.2</jackson.version>
......@@ -265,11 +264,6 @@
<artifactId>hibernate-envers</artifactId>
<version>${hibernate.version}</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>${hibernate.annotations.version}</version>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
......@@ -367,12 +361,12 @@
<artifactId>spring-context-support</artifactId>
<version>${spring.security.version}</version>
</dependency>
<dependency>
<!-- dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependency -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
......
......@@ -116,14 +116,10 @@
<groupId>org.hibernate</groupId>
<artifactId>hibernate-envers</artifactId>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
</dependency>
<dependency>
<!--dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
</dependency -->
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
......
......@@ -2,7 +2,25 @@ package eu.europa.ec.edelivery.smp;
public enum SMPRole {
SMP_ADMIN,
SERVICE_GROUP_ADMIN,
SYSTEM_ADMIN
SMP_ADMIN("ROLE_SMP_ADMIN"),
SERVICE_GROUP_ADMIN("ROLE_SERVICE_GROUP_ADMIN"),
SYSTEM_ADMIN("ROLE_SYSTEM_ADMIN");
// static constants for annotations!
public static final String S_ROLE_SYSTEM_ADMIN = "ROLE_SYSTEM_ADMIN";
public static final String S_ROLE_SMP_ADMIN = "ROLE_SMP_ADMIN";
public static final String S_ROLE_SERVICE_GROUP_ADMIN = "ROLE_SERVICE_GROUP_ADMIN";
String code;
SMPRole(String code){
this.code = code;
}
public String getCode() {
return code;
}
}
......@@ -27,10 +27,7 @@ import javax.xml.stream.XMLOutputFactory;
import javax.xml.stream.XMLStreamException;
import javax.xml.stream.XMLStreamWriter;
import javax.xml.transform.stream.StreamSource;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.io.*;
import java.util.Collections;
import java.util.List;
......@@ -41,7 +38,9 @@ import static java.nio.charset.StandardCharsets.UTF_8;
*/
public class ExtensionConverter {
private static final SMPLogger LOG = SMPLoggerFactory.getLogger(ServiceGroupConverter.class);
private static final String WRAPPED_FORMAT = "<ExtensionsWrapper xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\">%s</ExtensionsWrapper>";
// private static final String WRAPPED_FORMAT = "<ExtensionsWrapper xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\">%s</ExtensionsWrapper>";
private static final byte[] WRAPPED_FORMAT_START = "<ExtensionsWrapper xmlns=\"http://docs.oasis-open.org/bdxr/ns/SMP/2016/05\">".getBytes();
private static final byte[] WRAPPED_FORMAT_END = "</ExtensionsWrapper>".getBytes();
private static final QName EXT_TYPE_QNAME = new QName("http://docs.oasis-open.org/bdxr/ns/SMP/2016/05", "Extension");
/**
......@@ -70,25 +69,27 @@ public class ExtensionConverter {
return extensionUnmarshaller.get();
}
public static String marshalExtensions(List<ExtensionType> extensions) throws JAXBException, XMLStreamException, UnsupportedEncodingException {
public static byte[] marshalExtensions(List<ExtensionType> extensions) throws JAXBException, XMLStreamException, IOException {
return marshalExtensions(extensions, false);
}
public static String marshalExtensions(List<ExtensionType> extensions, boolean prettyPrint ) throws JAXBException, XMLStreamException, UnsupportedEncodingException {
public static byte[] marshalExtensions(List<ExtensionType> extensions, boolean prettyPrint ) throws JAXBException, XMLStreamException, IOException {
if (extensions == null) {
return null;
}
StringBuilder stringBuilder = new StringBuilder();
ByteArrayOutputStream baos = new ByteArrayOutputStream();
// StringBuilder stringBuilder = new StringBuilder();
for (ExtensionType aExtension : extensions) {
stringBuilder.append(ExtensionConverter.marshalExtension(aExtension, prettyPrint));
baos.write(ExtensionConverter.marshalExtension(aExtension, prettyPrint));
// stringBuilder.append(ExtensionConverter.marshalExtension(aExtension, prettyPrint));
}
return stringBuilder.toString();
return baos.toByteArray();
}
private static String marshalExtension(ExtensionType extension, boolean prettyPrint ) throws JAXBException, XMLStreamException, UnsupportedEncodingException {
private static byte[] marshalExtension(ExtensionType extension, boolean prettyPrint ) throws JAXBException, XMLStreamException {
if (extension == null) {
return null;
}
......@@ -114,12 +115,15 @@ public class ExtensionConverter {
xsw.close();
}
}
return baos.toString(UTF_8.name());
//return baos.toString(UTF_8.name());
return baos.toByteArray();
}
protected static List<ExtensionType> unmarshalExtensions(String xml) throws JAXBException {
String wrappedExtensionsStr = String.format(WRAPPED_FORMAT, xml);
InputStream inStream = new ByteArrayInputStream(wrappedExtensionsStr.getBytes(UTF_8));
protected static List<ExtensionType> unmarshalExtensions(byte[] xml) throws JAXBException {
InputStream inStream = new ByteArrayInputStream(concatByteArrays(WRAPPED_FORMAT_START,xml,WRAPPED_FORMAT_END ));
Unmarshaller jaxbUnmarshaller = getUnmarshaller();
JAXBElement<ExtensionsWrapper> wrappedExtensions = jaxbUnmarshaller.unmarshal(new StreamSource(inStream), ExtensionsWrapper.class);
if (wrappedExtensions.getValue() != null && wrappedExtensions.getValue().extensions != null) {
......@@ -128,4 +132,31 @@ public class ExtensionConverter {
return Collections.emptyList();
}
}
/**
* Method concat the bytearrays to one array
*
*
* https://stackoverflow.com/questions/5513152/easy-way-to-concatenate-two-byte-arrays
* - Use varargs (...) to be called with any number of byte[].
* - Use System.arraycopy() that is implemented with machine specific native code, to ensure high speed operation.
* - Create a new byte[] with the exact size that is need it.
* - Allocate little less int variables by reusing the i and len variables.
* @param inputs - byte arrays
* @return
*/
public static byte[] concatByteArrays(byte[]... inputs) {
int i, len = 0;
for (i = 0; i < inputs.length; i++) {
len += inputs[i].length;
}
byte[] r = new byte[len];
len = 0;
for (i = 0; i < inputs.length; i++) {
System.arraycopy(inputs[i], 0, r, len, inputs[i].length);
len += inputs[i].length;
}
return r;
}
}
......@@ -85,6 +85,20 @@ public class ServiceGroupConverter {
}
}
/**
* Method umarshal ServiceGroup from xml bytearraz
* @param serviceGroupXml
* @return
*/
public static ServiceGroup unmarshal(byte[] serviceGroupXml) {
try {
Document serviceGroupDoc = parse(serviceGroupXml);
return getUnmarshaller().unmarshal(serviceGroupDoc, ServiceGroup.class).getValue();
} catch (ParserConfigurationException | IOException | SAXException | JAXBException ex) {
throw new SMPRuntimeException(ErrorCode.XML_PARSE_EXCEPTION,ex,ServiceGroup.class.getName(), ExceptionUtils.getRootCauseMessage(ex));
}
}
/**
* Method returns Oasis ServiceGroup entity with extension and
* empty ServiceMetadataReferenceCollectionType. If extension can not be converted to jaxb object than
......@@ -102,7 +116,7 @@ public class ServiceGroupConverter {
ServiceGroup serviceGroup = new ServiceGroup();
ParticipantIdentifierType identifier = new ParticipantIdentifierType(dsg.getParticipantIdentifier(), dsg.getParticipantScheme());
serviceGroup.setParticipantIdentifier(identifier);
if (!StringUtils.isBlank(dsg.getExtension())){
if (dsg.getExtension()!=null){
try {
List<ExtensionType> extensions = ExtensionConverter.unmarshalExtensions(dsg.getExtension());
serviceGroup.getExtensions().addAll(extensions);
......@@ -120,6 +134,11 @@ public class ServiceGroupConverter {
return getDocumentBuilder().parse(inputStream);
}
private static Document parse(byte[] serviceGroupXml) throws ParserConfigurationException, IOException, SAXException {
InputStream inputStream = new ByteArrayInputStream(serviceGroupXml);
return getDocumentBuilder().parse(inputStream);
}
private static DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
documentBuilderFactory.setNamespaceAware(true);
......@@ -127,10 +146,10 @@ public class ServiceGroupConverter {
return documentBuilderFactory.newDocumentBuilder();
}
public static String extractExtensionsPayload(ServiceGroup sg) {
public static byte[] extractExtensionsPayload(ServiceGroup sg) {
try {
return ExtensionConverter.marshalExtensions(sg.getExtensions());
} catch (JAXBException | XMLStreamException | UnsupportedEncodingException e) {
} catch (JAXBException | XMLStreamException | IOException e) {
throw new SMPRuntimeException(INVALID_EXTENSION_FOR_SG, e,
sg.getParticipantIdentifier().getValue(), sg.getParticipantIdentifier().getScheme(),
ExceptionUtils.getRootCauseMessage(e));
......
......@@ -83,10 +83,10 @@ public class ServiceMetadataConverter {
* @param serviceMetadataXml
* @return w3d dom element
*/
public static Document toSignedServiceMetadatadaDocument(String serviceMetadataXml) {
public static Document toSignedServiceMetadatadaDocument(byte[] serviceMetadataXml) {
try {
Document docServiceMetadata = parse(serviceMetadataXml);
Document root = parse(DOC_SIGNED_SERVICE_METADATA_EMPTY);
Document root = parse(DOC_SIGNED_SERVICE_METADATA_EMPTY.getBytes());
Node imported = root.importNode(docServiceMetadata.getDocumentElement(), true);
root.getDocumentElement().appendChild(imported);
return root;
......@@ -96,7 +96,7 @@ public class ServiceMetadataConverter {
}
public static ServiceMetadata unmarshal(String serviceMetadataXml){
public static ServiceMetadata unmarshal(byte[] serviceMetadataXml){
try {
Document serviceMetadataDoc = parse(serviceMetadataXml);
ServiceMetadata serviceMetadata = getUnmarshaller().unmarshal(serviceMetadataDoc, ServiceMetadata.class).getValue();
......@@ -106,8 +106,8 @@ public class ServiceMetadataConverter {
}
}
private static Document parse(String serviceMetadataXml) throws SAXException, IOException, ParserConfigurationException {
InputStream inputStream = new ByteArrayInputStream(serviceMetadataXml.getBytes(UTF_8));
private static Document parse(byte[] serviceMetadataXml) throws SAXException, IOException, ParserConfigurationException {
InputStream inputStream = new ByteArrayInputStream(serviceMetadataXml);
return getDocumentBuilder().parse(inputStream);
}
......@@ -118,6 +118,13 @@ public class ServiceMetadataConverter {
return writer.toString();
}
public static byte[] toByteArray(Document doc) throws TransformerException, UnsupportedEncodingException {
Transformer transformer = TransformerFactory.newInstance().newTransformer();
ByteArrayOutputStream stream = new ByteArrayOutputStream();
transformer.transform(new DOMSource(doc), new StreamResult(stream));
return stream.toByteArray();
}
private static DocumentBuilder getDocumentBuilder() throws ParserConfigurationException {
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
dbf.setNamespaceAware(true);
......
......@@ -181,13 +181,13 @@ public class DBServiceGroup extends BaseEntity {
}
@Transient
public String getExtension() {
public byte[] getExtension() {
return getServiceGroupExtension() != null ? getServiceGroupExtension().getExtension() : null;
}
public void setExtension(String extension) {
public void setExtension(byte[] extension) {
if (StringUtils.isBlank(extension)) {
if (extension == null) {
if (this.serviceGroupExtension != null) {
this.serviceGroupExtension.setExtension(null);
}
......
......@@ -27,7 +27,7 @@ public class DBServiceGroupExtension extends BaseEntity {
@Lob
@Column(name = "EXTENSION")
String extension;
byte[] extension;
@OneToOne
@JoinColumn(name = "ID")
......@@ -51,11 +51,11 @@ public class DBServiceGroupExtension extends BaseEntity {
this.dbServiceGroup = dbServiceGroup;
}
public String getExtension() {
public byte[] getExtension() {
return extension;
}
public void setExtension(String extension) {
public void setExtension(byte[] extension) {
this.extension = extension;
}
......
......@@ -127,14 +127,14 @@ public class DBServiceMetadata extends BaseEntity {
}
@Transient
public String getXmlContent() {
public byte[] getXmlContent() {
return getServiceMetadataXml() != null ? getServiceMetadataXml().getXmlContent() : null;
}
@Transient
public void setXmlContent(String extension) {
public void setXmlContent(byte[] extension) {
if (StringUtils.isBlank(extension)) {
if (extension == null) {
if (this.serviceMetadataXml != null) {
this.serviceMetadataXml.setXmlContent(null);
}
......
......@@ -26,7 +26,7 @@ public class DBServiceMetadataXml extends BaseEntity {
@Lob
@Column(name = "XML_CONTENT")
String xmlContent;
byte[] xmlContent;
@OneToOne
@JoinColumn(name = "ID")
......@@ -50,11 +50,11 @@ public class DBServiceMetadataXml extends BaseEntity {
this.serviceMetadata = smd;
}
public String getXmlContent() {
public byte[] getXmlContent() {
return xmlContent;
}
public void setXmlContent(String xmlContent) {
public void setXmlContent(byte[] xmlContent) {
this.xmlContent = xmlContent;
}
......
......@@ -7,7 +7,7 @@ import javax.persistence.*;
@NamedNativeQueries({
@NamedNativeQuery(
name = "DBUserAuthority.getRolesForUsernameNativeQuery",
query = "SELECT 'ROLE_SMP_ADMIN' AS AUTHORITY FROM smp_user WHERE isadmin = 1 and username=:username " +
query = "SELECT 'SMP_ADMIN' AS AUTHORITY FROM smp_user WHERE isadmin = 1 and username=:username " +
"UNION ALL " +
"SELECT CONCAT(businessIdentifierScheme, CONCAT('::', businessIdentifier)) AS AUTHORITY FROM smp_ownership WHERE username=:username",
resultSetMapping = "RoleDTO"
......
package eu.europa.ec.edelivery.smp.data.ui;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
......
package eu.europa.ec.edelivery.smp.data.ui;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
......
package eu.europa.ec.edelivery.smp.data.ui;
import eu.europa.ec.edelivery.smp.data.model.CommonColumnsLengths;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import javax.persistence.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Objects;
import static eu.europa.ec.edelivery.smp.data.model.CommonColumnsLengths.MAX_USERNAME_LENGTH;
/**
* @author Joze Rihtarsic
......
......@@ -17,7 +17,7 @@ package eu.europa.ec.edelivery.smp.exceptions;
* Created by migueti on 16/01/2017.
*/
public enum ErrorBusinessCode {
XML_INVALID,
XSD_INVALID,
MISSING_FIELD,
WRONG_FIELD,
OUT_OF_RANGE,
......
......@@ -21,20 +21,20 @@ public enum ErrorCode {
INVALID_USER_NO_IDENTIFIERS (400,"SMP:120",ErrorBusinessCode.MISSING_FIELD,"Invalid user - no identifiers!"),
ILLEGAL_STATE_USERNAME_MULTIPLE_ENTRY(500,"SMP:121",ErrorBusinessCode.TECHNICAL,"More than one user entry (username: '%s') is defined in database!"),
ILLEGAL_STATE_CERT_ID_MULTIPLE_ENTRY(504,"SMP:122",ErrorBusinessCode.TECHNICAL,"More than one certificate entry (cert. id: '%s') is defined in database!"),
USER_NOT_EXISTS(404,"SMP:123",ErrorBusinessCode.NOT_FOUND,"User not exists or wrong password!"), // OWASP recommendation\
USER_NOT_EXISTS(400,"SMP:123",ErrorBusinessCode.USER_NOT_FOUND,"User not exists or wrong password!"), // OWASP recommendation\
USER_IS_NOT_OWNER(400,"SMP:124",ErrorBusinessCode.UNAUTHORIZED,"User %s is not owner of service group (part. id: %s, part. sch.: '%s')!"), // OWASP recommendation
// service group error
ILLEGAL_STATE_SG_MULTIPLE_ENTRY (500,"SMP:130",ErrorBusinessCode.TECHNICAL,"More than one service group ( part. id: %s, part. sch.: '%s') is defined in database!"),
SG_NOT_EXISTS(404,"SMP:131",ErrorBusinessCode.NOT_FOUND,"Service group not exists (dpart. id: '%s', part. sch.: '%s')!"),
SG_NOT_EXISTS(404,"SMP:131",ErrorBusinessCode.NOT_FOUND,"ServiceGroup not found (dpart. id: '%s', part. sch.: '%s')!"),
SG_NOT_REGISTRED_FOR_DOMAIN(400,"SMP:131",ErrorBusinessCode.NOT_FOUND,"Service group not registred for domain (domain: %s, part. id:~ '%s', part. sch.: '%s')!"),
INVALID_EXTENSION_FOR_SG (400,"SMP:132",ErrorBusinessCode.XML_INVALID,"Invalid extension for service group (part. id: '%s', part. sch.: '%s'). Error: %s!"),
INVALID_EXTENSION_FOR_SG (400,"SMP:132",ErrorBusinessCode.XSD_INVALID,"Invalid extension for service group (part. id: '%s', part. sch.: '%s'). Error: %s!"),
// service metadata error
ILLEGAL_STATE_SMD_MULTIPLE_ENTRY (500,"SMP:140",ErrorBusinessCode.TECHNICAL,"More than one service metadata ( doc. id: %s, doc. sch.: '%s') for participant ( part. id %s, part. sch. : '%s') is defined in database!"),
METADATA_NOT_EXISTS(404,"SMP:141",ErrorBusinessCode.NOT_FOUND,"ServiceMetadata not exist(part. id: '%s', part. sch.: '%s',doc. id: '%s', doc. sch.: '%s')!"),
SMD_NOT_EXISTS_FOR_DOMAIN(404,"SMP:142",ErrorBusinessCode.NOT_FOUND,"ServiceMetadata not exists for domain (domain: %s, part. id: '%s', part. sch.: '%s')!"),
INVALID_SMD_XML (400,"SMP:143",ErrorBusinessCode.XML_INVALID,"Invalid service metada. Error: %s"),
METADATA_NOT_EXISTS(404,"SMP:141",ErrorBusinessCode.NOT_FOUND,"ServiceMetadata not found (part. id: '%s', part. sch.: '%s',doc. id: '%s', doc. sch.: '%s')!"),
SMD_NOT_EXISTS_FOR_DOMAIN(404,"SMP:142",ErrorBusinessCode.NOT_FOUND,"ServiceMetadata not found for domain (domain: %s, part. id: '%s', part. sch.: '%s')!"),
INVALID_SMD_XML (400,"SMP:143",ErrorBusinessCode.XSD_INVALID,"Invalid service metada. Error: %s"),
// SML integration
SML_INTEGRATION_EXCEPTION (500,"SMP:150",ErrorBusinessCode.TECHNICAL,"Could not create new DNS entry through SML! Error: %s "),
......
......@@ -116,7 +116,7 @@ public class ServiceGroupService {
normalizedParticipantId.getScheme());
String extensions = ServiceGroupConverter.extractExtensionsPayload(serviceGroup);
byte[] extensions = ServiceGroupConverter.extractExtensionsPayload(serviceGroup);
if (dbServiceGroup.isPresent()) {
// service already exists.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment