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

Update 2w ssl librarby and unit tests

add crl properties to certificate table
parent 2fef5d71
Branches
Tags
No related merge requests found
......@@ -47,21 +47,21 @@
<properties>
<!-- Only selected modules are deployed -->
<maven.deploy.skip>true</maven.deploy.skip>
<edelivery.ssl-auth.version>1.6</edelivery.ssl-auth.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<slf4j.version>1.7.26</slf4j.version>
<spring.version>5.1.8.RELEASE</spring.version>
<spring.security.version>5.1.5.RELEASE</spring.security.version>
<spring.version>5.1.9.RELEASE</spring.version>
<spring.security.version>5.1.6.RELEASE</spring.security.version>
<spring.boot.version>2.0.5.RELEASE</spring.boot.version>
<!-- bdmsl.client.version>3.0.0</bdmsl.client.version -->
<bdmsl.api.version>3.1.3</bdmsl.api.version>
<bdmsl.api.version>4.0.0</bdmsl.api.version>
<cxf.version>3.2.7</cxf.version>
<cxf-xjc-runtime.version>3.2.0</cxf-xjc-runtime.version>
<build.helper.maven.version>1.9.1</build.helper.maven.version>
<ehcache.version>2.10.6</ehcache.version>
<spring-modules-jakarta-commons.version>0.8</spring-modules-jakarta-commons.version>
<bouncycastle.version>1.58</bouncycastle.version>
<bouncycastle.version>1.62</bouncycastle.version>
<dnsjava.version>2.1.7</dnsjava.version>
<h2.version>1.4.187</h2.version>
<jstl.version>1.2</jstl.version>
......@@ -79,7 +79,7 @@
<!--https://hibernate.atlassian.net/browse/HHH-12436 Bug in OneToOne mapping
(problem in test case: ServiceGroupDaoMetadataIntegrationTest.addNewServiceMetadata) use 5.2.13.Final -->
<!-- hibernate.version>5.3.7.Final</hibernate.version-->
<hibernate.version>5.2.13.Final</hibernate.version>
<hibernate.version>5.4.4.Final</hibernate.version>
<hibernate-jpa.version>1.0.2.Final</hibernate-jpa.version>
<hibernate.validator.version>6.0.13.Final</hibernate.validator.version>
<h2.version>1.4.187</h2.version>
......@@ -92,7 +92,7 @@
<junitparams.version>1.0.5</junitparams.version>
<xmlunit.version>2.5.1</xmlunit.version>
<hamcrest.version>2.0.0.0</hamcrest.version>
<jackson.version>2.9.7</jackson.version>
<jackson.version>2.9.9</jackson.version>
<!-- jacoco, sonar code coverage settings start -->
<sonar.java.coveragePlugin>jacoco</sonar.java.coveragePlugin>
......@@ -194,7 +194,7 @@
<dependency>
<groupId>eu.europa.ec.edelivery</groupId>
<artifactId>edelivery-springsecurity-2-way-ssl-auth</artifactId>
<version>1.2</version>
<version>${edelivery.ssl-auth.version}</version>
</dependency>
<dependency>
<groupId>eu.europa.ec.bdmsl</groupId>
......
......@@ -52,8 +52,10 @@ public class ExtensionConverter {
*/
@XmlRootElement(name = "ExtensionsWrapper")
private static class ExtensionsWrapper {
@XmlElement(name = "Extension")
List<ExtensionType> extensions;
@XmlElement(name = "Extension", namespace = "http://docs.oasis-open.org/bdxr/ns/SMP/2016/05")
public List<ExtensionType> extensions;
}
/**
......
......@@ -56,6 +56,15 @@ public class DBCertificate extends BaseEntity {
@ColumnDescription(comment = "Certificate serial number" )
private String serialNumber;
@Column(name = "pem_encoding")
@ColumnDescription(comment = "PEM encoding for the certificate")
@Lob
private String pemEncoding;
@Column(name = "crl_url", length = CommonColumnsLengths.MAX_FREE_TEXT_LENGTH)
@ColumnDescription(comment = "URL to the certificate revocation list (CRL)")
private String crlUrl;
@Column(name = "CREATED_ON" , nullable = false)
......@@ -137,6 +146,22 @@ public class DBCertificate extends BaseEntity {
this.serialNumber = serialNumber;
}
public String getPemEncoding() {
return pemEncoding;
}
public void setPemEncoding(String pemEncoding) {
this.pemEncoding = pemEncoding;
}
public String getCrlUrl() {
return crlUrl;
}
public void setCrlUrl(String crlUrl) {
this.crlUrl = crlUrl;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
......
......@@ -36,7 +36,7 @@ public class X509CertificateToCertificateROConverterTest {
return new Object[][]{
// filename, subject, issuer, serial number, blueCoatHeader, certificateId
{"cert-escaped-chars.pem", "C=BE,O=DIGIT,OU=CEF,CN=Escape characters \\,\\\\#\\+\\<\\>\\\"\\=", "C=BE,O=DIGIT,OU=CEF,CN=Escape characters \\,\\\\#\\+\\<\\>\\\"\\=","5c1bb275","sno=5c1bb275&subject=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DEscape+characters+%5C%2C%5C%5C%23%5C%2B%5C%3C%5C%3E%5C%22%5C%3D&validfrom=Dec+20+16%3A17%3A09+2018+GMT&validto=Dec+17+16%3A17%3A09+2028+GMT&issuer=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DEscape+characters+%5C%2C%5C%5C%23%5C%2B%5C%3C%5C%3E%5C%22%5C%3D","CN=Escape characters \\,\\\\\\#\\+\\<\\>\\\"\\=,O=DIGIT,C=BE:000000005c1bb275"},
{"cert-nonAscii.pem", "C=BE,O=DIGIT,OU=CEF,CN=NonAscii chars: àøýßĉæãäħ", "C=BE,O=DIGIT,OU=CEF,CN=NonAscii chars: àøýßĉæãäħ","5c1bb38d","sno=5c1bb38d&subject=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DNonAscii+chars%3A++%C3%A0%C3%B8%C3%BD%C3%9F%C4%89%C3%A6%C3%A3%C3%A4%C4%A7&validfrom=Dec+20+16%3A21%3A49+2018+GMT&validto=Dec+17+16%3A21%3A49+2028+GMT&issuer=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DNonAscii+chars%3A++%C3%A0%C3%B8%C3%BD%C3%9F%C4%89%C3%A6%C3%A3%C3%A4%C4%A7","CN=NonAscii chars: àøýßĉæãäħ,O=DIGIT,C=BE:000000005c1bb38d"},
{"cert-nonAscii.pem", "C=BE,O=DIGIT,OU=CEF,CN=NonAscii chars: àøýßĉæãäħ", "C=BE,O=DIGIT,OU=CEF,CN=NonAscii chars: àøýßĉæãäħ","5c1bb38d","sno=5c1bb38d&subject=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DNonAscii+chars%3A++%C3%A0%C3%B8%C3%BD%C3%9F%C4%89%C3%A6%C3%A3%C3%A4%C4%A7&validfrom=Dec+20+16%3A21%3A49+2018+GMT&validto=Dec+17+16%3A21%3A49+2028+GMT&issuer=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DNonAscii+chars%3A++%C3%A0%C3%B8%C3%BD%C3%9F%C4%89%C3%A6%C3%A3%C3%A4%C4%A7","CN=NonAscii chars: aøyßcæaaħ,O=DIGIT,C=BE:000000005c1bb38d"},
{"cert-with-email.pem", "C=BE,O=DIGIT,OU=CEF,CN=Cert with email", "C=BE,O=DIGIT,OU=CEF,CN=Cert with email","5c1bb358","sno=5c1bb358&subject=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DCert+with+email&validfrom=Dec+20+16%3A20%3A56+2018+GMT&validto=Dec+17+16%3A20%3A56+2028+GMT&issuer=C%3DBE%2CO%3DDIGIT%2COU%3DCEF%2CCN%3DCert+with+email","CN=Cert with email,O=DIGIT,C=BE:000000005c1bb358"},
};
}
......
......@@ -14,6 +14,7 @@ package eu.europa.ec.edelivery.smp.data.dao;
import eu.europa.ec.edelivery.smp.config.H2JPATestConfig;
import eu.europa.ec.edelivery.smp.data.model.*;
import eu.europa.ec.edelivery.smp.testutil.TestDBUtils;
import org.hibernate.envers.AuditReader;
import org.hibernate.envers.AuditReaderFactory;
import org.junit.Assert;
......@@ -28,11 +29,12 @@ import org.springframework.test.util.ReflectionTestUtils;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.PersistenceUnit;
import java.time.LocalDateTime;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
import static eu.europa.ec.edelivery.smp.testutil.TestDBUtils.createDBDomain;
import static eu.europa.ec.edelivery.smp.testutil.TestDBUtils.*;
import static org.junit.Assert.assertTrue;
/**
......@@ -75,26 +77,15 @@ public class AuditIntegrationTest {
alterVal.put("smlClientKeyAlias", UUID.randomUUID().toString());
alterVal.put("smlSubdomain", UUID.randomUUID().toString());
testAuditEntity(domain,alterVal );
}
/* @Test
public void testAuditDBServiceGroup() {
DBServiceGroup grp = createDBServiceGroup();
EntityManager em = emf.createEntityManager();
persist(em, grp.getDomain());
Map<String, Object> alterVal = new HashMap<>();
alterVal.put("extension", UUID.randomUUID().toString());
testAuditSubEntity(grp, grp.getServiceGroupExtension(),alterVal );
}
@Test
public void testAuditDBUser() {
DBUser dbuser = createDBUser();
DBUser dbuser = createDBUser(UUID.randomUUID().toString());
Map<String, Object> alterVal = new HashMap<>();
alterVal.put("password", UUID.randomUUID().toString());
alterVal.put("role", UUID.randomUUID().toString());
......@@ -103,10 +94,11 @@ public class AuditIntegrationTest {
testAuditEntity(dbuser,alterVal );
}
@Test
public void testAuditDBUserWithCertificate() {
DBUser dbuser = createDBUser();
DBUser dbuser = createDBUser(UUID.randomUUID().toString());
DBCertificate cert = createDBCertificate();
dbuser.setCertificate(cert);
Map<String, Object> alterValCert = new HashMap<>();
......@@ -118,24 +110,43 @@ public class AuditIntegrationTest {
testAuditSubEntity(dbuser,dbuser.getCertificate(), alterValCert );
}
/*
@Test
public void testAuditDBServiceGroup() {
DBServiceGroup grp = createDBServiceGroup();
EntityManager em = emf.createEntityManager();
Map<String, Object> alterVal = new HashMap<>();
alterVal.put("extension", UUID.randomUUID().toString().getBytes());
testAuditSubEntity(grp, grp.getServiceGroupExtension(),alterVal );
}
@Test
public void testAuditDBMetaData() {
DBServiceMetadata md = createDBServiceMetadata();
DBServiceMetadata md = createDBServiceMetadata(UUID.randomUUID().toString(), UUID.randomUUID().toString());
DBDomain domain = createDBDomain();
DBServiceGroup grp = createDBServiceGroup();
DBServiceGroupDomain serviceGroupDomain = new DBServiceGroupDomain();
EntityManager em = emf.createEntityManager();
persist(em, md.getServiceGroup().getDomain());
persist(em, md.getServiceGroup());
persist(em, domain);
persist(em, grp);
serviceGroupDomain.setDomain(domain);
serviceGroupDomain.setServiceGroup(grp);
persist(em, serviceGroupDomain);
md.setServiceGroupDomain(serviceGroupDomain);
Map<String, Object> alterVal = new HashMap<>();
alterVal.put("XmlContent", UUID.randomUUID().toString());
alterVal.put("XmlContent", UUID.randomUUID().toString().getBytes());
testAuditEntity(DBServiceMetadata.class, md.getId(),md,alterVal );
testAuditSubEntity(md, md.getServiceMetadataXml(),alterVal );
}
*/
/**
* Method updates value in Map, then checks if revision increased. Last testi in removing the entity.
* Method updates value in Map, then checks if revision increased. Last test in removing the entity.
* @param entity
* @param alterValues
*/
......
......@@ -37,13 +37,6 @@
<authentication-manager alias="smpAuthenticationManager">
<!-- authentication-provider>
<password-encoder hash="bcrypt"/>
<jdbc-user-service id="smpJdbcUserDetailsService"
data-source-ref="dataSource"
users-by-username-query="SELECT username, COALESCE(PASSWORD, 'dummy'), ACTIVE FROM SMP_USER WHERE USERNAME = ?"
authorities-by-username-query="select username, ROLE FROM SMP_USER where USERNAME = ?"/>
</authentication-provider -->
<authentication-provider ref="smpAuthProvider"/>
<authentication-provider ref="preauthAuthProvider"/>
......
......@@ -13,12 +13,14 @@
package eu.europa.ec.cipa.smp.server.security;
import eu.europa.ec.edelivery.exception.BlueCoatParseException;
import eu.europa.ec.edelivery.smp.config.*;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpHeaders;
import org.springframework.security.authentication.BadCredentialsException;
import org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers;
import org.springframework.test.annotation.Rollback;
import org.springframework.test.context.ContextConfiguration;
......@@ -112,7 +114,7 @@ public class SecurityConfigurationTest {
}
@Test
@Test(expected = BlueCoatParseException.class)
public void malformedBlueCoatHeaderNotAuthorizedTest() throws Exception {
HttpHeaders headers = new HttpHeaders();
headers.add("Client-Cert", "malformed header value");
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment