Code development platform for open source projects from the European Union institutions

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

Pull request #48: UI domain administration update, fix pom schema location

Merge in EDELIVERY/smp from EDELIVERY-11646-smp-ui-improvements to development

* commit '8a7b3681':
  PR Updates
  UI domain administration update, fix pom schema location
parents 5690ec92 8a7b3681
No related branches found
No related tags found
No related merge requests found
Pipeline #120218 passed with warnings
Showing
with 78 additions and 64 deletions
package eu.europa.ec.edelivery.smp.conversion; package eu.europa.ec.edelivery.smp.conversion;
import eu.europa.ec.edelivery.smp.data.dao.DomainMemberDao;
import eu.europa.ec.edelivery.smp.data.enums.MembershipRoleType;
import eu.europa.ec.edelivery.smp.data.model.DBDomain; import eu.europa.ec.edelivery.smp.data.model.DBDomain;
import eu.europa.ec.edelivery.smp.data.ui.DomainRO; import eu.europa.ec.edelivery.smp.data.ui.DomainRO;
import eu.europa.ec.edelivery.smp.logging.SMPLogger; import eu.europa.ec.edelivery.smp.logging.SMPLogger;
...@@ -15,18 +17,30 @@ import java.util.stream.Collectors; ...@@ -15,18 +17,30 @@ import java.util.stream.Collectors;
/** /**
* Converter for domain DAO entity {@link DBDomain} to enriched webservice object {@link DomainRO}.
* *
* @author Joze Rihtarsic
* @since 5.0
*/ */
@Component @Component
public class DBDomainToDomainROConverter implements Converter<DBDomain, DomainRO> { public class DBDomainToDomainROConverter implements Converter<DBDomain, DomainRO> {
private static final SMPLogger LOG = SMPLoggerFactory.getLogger(DBDomainToDomainROConverter.class); private static final SMPLogger LOG = SMPLoggerFactory.getLogger(DBDomainToDomainROConverter.class);
private final DomainMemberDao domainMemberDao;
public DBDomainToDomainROConverter(DomainMemberDao domainMemberDao) {
this.domainMemberDao = domainMemberDao;
}
@Override @Override
public DomainRO convert(DBDomain source) { public DomainRO convert(DBDomain source) {
DomainRO target = new DomainRO(); DomainRO target = new DomainRO();
try { try {
BeanUtils.copyProperties(target, source); BeanUtils.copyProperties(target, source);
Long memberCount = domainMemberDao.getDomainMemberCount(source.getId(), null, MembershipRoleType.ADMIN);
target.setAdminMemberCount(memberCount);
List<String> domainDocuments = source.getDomainResourceDefs().stream().map(dbDomainResourceDef -> dbDomainResourceDef.getResourceDef().getIdentifier()).collect(Collectors.toList()); List<String> domainDocuments = source.getDomainResourceDefs().stream().map(dbDomainResourceDef -> dbDomainResourceDef.getResourceDef().getIdentifier()).collect(Collectors.toList());
target.getResourceDefinitions().addAll(domainDocuments); target.getResourceDefinitions().addAll(domainDocuments);
target.setDomainId(SessionSecurityUtils.encryptedEntityId(source.getId())); target.setDomainId(SessionSecurityUtils.encryptedEntityId(source.getId()));
......
...@@ -31,6 +31,7 @@ import java.util.Optional; ...@@ -31,6 +31,7 @@ import java.util.Optional;
import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*; import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*;
import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.DOMAIN_NOT_EXISTS; import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.DOMAIN_NOT_EXISTS;
import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.ILLEGAL_STATE_DOMAIN_MULTIPLE_ENTRY; import static eu.europa.ec.edelivery.smp.exceptions.ErrorCode.ILLEGAL_STATE_DOMAIN_MULTIPLE_ENTRY;
import static eu.europa.ec.edelivery.smp.data.enums.MembershipRoleType.toList;
/** /**
* @author gutowpa * @author gutowpa
...@@ -175,11 +176,6 @@ public class DomainDao extends BaseDao<DBDomain> { ...@@ -175,11 +176,6 @@ public class DomainDao extends BaseDao<DBDomain> {
return query.getResultList(); return query.getResultList();
} }
public List<MembershipRoleType> toList(MembershipRoleType ... roleTypes){
return Arrays.asList(roleTypes ==null || roleTypes.length==0 ?MembershipRoleType.values(): roleTypes);
}
/** /**
* Check if domain for domain code exists. If not SMPRuntimeException with DOMAIN_NOT_EXISTS is thrown. * Check if domain for domain code exists. If not SMPRuntimeException with DOMAIN_NOT_EXISTS is thrown.
* If code is null or blank - then null is returned. * If code is null or blank - then null is returned.
......
...@@ -26,6 +26,7 @@ import java.util.List; ...@@ -26,6 +26,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*; import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*;
import static eu.europa.ec.edelivery.smp.data.enums.MembershipRoleType.toList;
/** /**
* @author Joze Rihtarsic * @author Joze Rihtarsic
...@@ -92,10 +93,11 @@ public class DomainMemberDao extends BaseDao<DBDomainMember> { ...@@ -92,10 +93,11 @@ public class DomainMemberDao extends BaseDao<DBDomainMember> {
return query.getResultList(); return query.getResultList();
} }
public Long getDomainMemberCount(Long domainId, String filter) { public Long getDomainMemberCount(Long domainId, String filter, MembershipRoleType ... roleTypes) {
boolean hasFilter = StringUtils.isNotBlank(filter); boolean hasFilter = StringUtils.isNotBlank(filter);
TypedQuery<Long> query = memEManager.createNamedQuery(hasFilter ? QUERY_DOMAIN_MEMBERS_FILTER_COUNT : QUERY_DOMAIN_MEMBERS_COUNT, Long.class); TypedQuery<Long> query = memEManager.createNamedQuery(hasFilter ? QUERY_DOMAIN_MEMBERS_FILTER_COUNT : QUERY_DOMAIN_MEMBERS_COUNT, Long.class);
query.setParameter(PARAM_DOMAIN_ID, domainId); query.setParameter(PARAM_DOMAIN_ID, domainId);
query.setParameter(PARAM_MEMBERSHIP_ROLES, toList(roleTypes));
if (hasFilter) { if (hasFilter) {
query.setParameter(PARAM_USER_FILTER, StringUtils.wrapIfMissing(StringUtils.trim(filter),"%" )); query.setParameter(PARAM_USER_FILTER, StringUtils.wrapIfMissing(StringUtils.trim(filter),"%" ));
} }
......
package eu.europa.ec.edelivery.smp.data.enums; package eu.europa.ec.edelivery.smp.data.enums;
import java.util.Arrays;
import java.util.List;
/**
* Enum for membership role types. At the moment there are two types of roles:
* <ul>
* <li>VIEWER - user is the readonly member of the the domain.</li>
* <li>ADMIN - user is administrator of the domain and can view and edit the domain data.</li>
* </ul>
*
* @author Joze Rihtarsic
* @since 5.0
*/
public enum MembershipRoleType { public enum MembershipRoleType {
VIEWER, VIEWER,
ADMIN ADMIN;
/**
* Method to convert MembershipRoleType to List<MembershipRoleType>. if roleTypes is null or empty,
* all values are returned as list
*
* @param roleTypes - list of role types
* @return list of role types
*/
public static List<MembershipRoleType> toList(MembershipRoleType... roleTypes) {
return Arrays.asList(roleTypes == null || roleTypes.length == 0 ? values() : roleTypes);
}
} }
...@@ -30,13 +30,18 @@ import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*; ...@@ -30,13 +30,18 @@ import static eu.europa.ec.edelivery.smp.data.dao.QueryNames.*;
@NamedQuery(name = QUERY_DOMAIN_MEMBER_BY_USER_DOMAINS, query = "SELECT c FROM DBDomainMember c " + @NamedQuery(name = QUERY_DOMAIN_MEMBER_BY_USER_DOMAINS, query = "SELECT c FROM DBDomainMember c " +
"WHERE c.user.id = :user_id and c.domain.id in (:domain_ids)") "WHERE c.user.id = :user_id and c.domain.id in (:domain_ids)")
@NamedQuery(name = QUERY_DOMAIN_MEMBERS_COUNT, query = "SELECT count(c) FROM DBDomainMember c " + @NamedQuery(name = QUERY_DOMAIN_MEMBERS_COUNT, query = "SELECT count(c) FROM DBDomainMember c " +
" WHERE c.domain.id = :domain_id") " WHERE c.domain.id = :domain_id AND c.role in (:membership_roles)")
@NamedQuery(name = QUERY_DOMAIN_MEMBERS, query = "SELECT c FROM DBDomainMember c " + @NamedQuery(name = QUERY_DOMAIN_MEMBERS, query = "SELECT c FROM DBDomainMember c " +
" WHERE c.domain.id = :domain_id order by c.user.username") " WHERE c.domain.id = :domain_id order by c.user.username")
@NamedQuery(name = QUERY_DOMAIN_MEMBERS_FILTER_COUNT, query = "SELECT count(c) FROM DBDomainMember c " + @NamedQuery(name = QUERY_DOMAIN_MEMBERS_FILTER_COUNT, query = "SELECT count(c) FROM DBDomainMember c " +
" WHERE c.domain.id = :domain_id AND (lower(c.user.fullName) like lower(:user_filter) OR lower(c.user.username) like lower(:user_filter))") " WHERE c.domain.id = :domain_id " +
" AND c.role in (:membership_roles)" +
" AND (lower(c.user.fullName) like lower(:user_filter) " +
" OR lower(c.user.username) like lower(:user_filter))")
@NamedQuery(name = QUERY_DOMAIN_MEMBERS_FILTER, query = "SELECT c FROM DBDomainMember c " + @NamedQuery(name = QUERY_DOMAIN_MEMBERS_FILTER, query = "SELECT c FROM DBDomainMember c " +
" WHERE c.domain.id = :domain_id AND (lower(c.user.fullName) like lower(:user_filter) OR lower(c.user.username) like lower(:user_filter)) order by c.user.username") " WHERE c.domain.id = :domain_id " +
" AND (lower(c.user.fullName) like lower(:user_filter) " +
" OR lower(c.user.username) like lower(:user_filter)) order by c.user.username")
public class DBDomainMember extends BaseEntity { public class DBDomainMember extends BaseEntity {
@Id @Id
......
...@@ -27,6 +27,7 @@ public class DomainRO extends BaseRO { ...@@ -27,6 +27,7 @@ public class DomainRO extends BaseRO {
private String defaultResourceTypeIdentifier; private String defaultResourceTypeIdentifier;
private final List<GroupRO> groups = new ArrayList<>(); private final List<GroupRO> groups = new ArrayList<>();
private final List<String> resourceDefinitions = new ArrayList<>(); private final List<String> resourceDefinitions = new ArrayList<>();
private long adminMemberCount = -1;
public String getDomainId() { public String getDomainId() {
return domainId; return domainId;
...@@ -115,4 +116,12 @@ public class DomainRO extends BaseRO { ...@@ -115,4 +116,12 @@ public class DomainRO extends BaseRO {
public List<String> getResourceDefinitions() { public List<String> getResourceDefinitions() {
return resourceDefinitions; return resourceDefinitions;
} }
public long getAdminMemberCount() {
return adminMemberCount;
}
public void setAdminMemberCount(long adminMemberCount) {
this.adminMemberCount = adminMemberCount;
}
} }
package eu.europa.ec.edelivery.smp.services.ui; package eu.europa.ec.edelivery.smp.services.ui;
import eu.europa.ec.edelivery.security.utils.KeystoreUtils;
import eu.europa.ec.edelivery.security.utils.X509CertificateUtils;
import eu.europa.ec.edelivery.smp.data.dao.UserDao; import eu.europa.ec.edelivery.smp.data.dao.UserDao;
import eu.europa.ec.edelivery.smp.data.model.user.DBUser; import eu.europa.ec.edelivery.smp.data.model.user.DBUser;
import eu.europa.ec.edelivery.smp.data.ui.CertificateRO; import eu.europa.ec.edelivery.smp.data.ui.CertificateRO;
...@@ -13,7 +11,6 @@ import org.apache.commons.io.FileUtils; ...@@ -13,7 +11,6 @@ import org.apache.commons.io.FileUtils;
import org.hamcrest.MatcherAssert; import org.hamcrest.MatcherAssert;
import org.hamcrest.Matchers; import org.hamcrest.Matchers;
import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.mockito.ArgumentCaptor; import org.mockito.ArgumentCaptor;
import org.mockito.ArgumentMatchers; import org.mockito.ArgumentMatchers;
...@@ -22,14 +19,15 @@ import org.springframework.core.convert.ConversionService; ...@@ -22,14 +19,15 @@ import org.springframework.core.convert.ConversionService;
import javax.security.auth.x500.X500Principal; import javax.security.auth.x500.X500Principal;
import java.io.File; import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.math.BigInteger;
import java.nio.file.Path; import java.nio.file.Path;
import java.nio.file.Paths; import java.nio.file.Paths;
import java.security.KeyStore; import java.security.KeyStore;
import java.security.cert.*; import java.security.cert.*;
import java.util.*; import java.util.Base64;
import java.util.Collections;
import java.util.Optional;
import java.util.UUID;
import java.util.regex.Pattern; import java.util.regex.Pattern;
import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*;
...@@ -371,7 +369,7 @@ public class UITruststoreServiceTest { ...@@ -371,7 +369,7 @@ public class UITruststoreServiceTest {
@Test @Test
public void testAddCertificate() throws Exception { public void testAddCertificate() throws Exception {
String subject = "CN=Something,O=test,C=EU"; String subject = "CN=Something,O=test,C=EU";
X509Certificate certificate = X509CertificateTestUtils.createX509CertificateForTest(subject); X509Certificate certificate = X509CertificateTestUtils.createX509CertificateForTest(subject);
...@@ -386,7 +384,7 @@ public class UITruststoreServiceTest { ...@@ -386,7 +384,7 @@ public class UITruststoreServiceTest {
} }
@Test @Test
public void testDeleteCertificate() throws Exception { public void testDeleteCertificate() throws Exception {
String subject = "CN=Something,O=test,C=EU"; String subject = "CN=Something,O=test,C=EU";
X509Certificate certificate = X509CertificateTestUtils.createX509CertificateForTest(subject); X509Certificate certificate = X509CertificateTestUtils.createX509CertificateForTest(subject);
doReturn(targetTruststore.toFile()).when(configurationService).getTruststoreFile(); doReturn(targetTruststore.toFile()).when(configurationService).getTruststoreFile();
...@@ -402,30 +400,6 @@ public class UITruststoreServiceTest { ...@@ -402,30 +400,6 @@ public class UITruststoreServiceTest {
assertEquals(count - 1, testInstance.getNormalizedTrustedList().size()); assertEquals(count - 1, testInstance.getNormalizedTrustedList().size());
} }
/**
* This method is not a tests is it done for generating the tests Soapui certificates
*
* @throws Exception if an error occurs
*/
@Test
@Disabled
public void generateSoapUITestCertificates() throws Exception {
List<String[]> listCerts = Arrays.asList(new String[]{"f71ee8b11cb3b787", "CN=EHEALTH_SMP_EC,O=European Commission,C=BE", "ehealth_smp_ec",},
new String[]{"E07B6b956330a19a", "CN=blue_gw,O=eDelivery,C=BE", "blue_gw"},
new String[]{"9792ce69BC89F14C", "CN=red_gw,O=eDelivery,C=BE", "red_gw"}
);
String token = "test123";
File keystoreFile = new File("./target/smp-test-examples.p12");
KeyStore keyStore = KeystoreUtils.createNewKeystore(keystoreFile, token);
for (String[] data : listCerts) {
BigInteger serial = new BigInteger(data[0], 16);
X509CertificateUtils.createAndStoreSelfSignedCertificate(serial, data[1], data[2], keyStore, token);
}
try (FileOutputStream fos = new FileOutputStream(keystoreFile)) {
keyStore.store(fos, token.toCharArray());
}
}
protected void resetKeystore() throws IOException { protected void resetKeystore() throws IOException {
FileUtils.deleteDirectory(targetDirectory.toFile()); FileUtils.deleteDirectory(targetDirectory.toFile());
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<property name="consolePattern" value="%d{ISO8601} [%X{smp_user}] [%X{smp_session_id}] [%X{smp_request_id}] [%thread] %5p %c{1}:%L - %m%n" scope="global"/> <property name="consolePattern" value="%d{ISO8601} [%X{smp_user}] [%X{smp_session_id}] [%X{smp_request_id}] [%thread] %5p %c{1}:%L - %m%n" scope="global"/>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${project.build.directory}/logs/edelivery-smp.log</file> <file>${buildDirectory}/logs/edelivery-smp.log</file>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>SECURITY</marker> <marker>SECURITY</marker>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</filter> </filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily --> <!-- rollover daily -->
<fileNamePattern>${project.build.directory}/logs/edelivery-smp-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <fileNamePattern>${buildDirectory}/logs/edelivery-smp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 30MB, keep 60 days worth of history, but at most 20GB --> <!-- each file should be at most 30MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>30MB</maxFileSize> <maxFileSize>30MB</maxFileSize>
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
...@@ -40,4 +40,4 @@ ...@@ -40,4 +40,4 @@
<appender-ref ref="file"/> <appender-ref ref="file"/>
<appender-ref ref="stdout"/> <appender-ref ref="stdout"/>
</root> </root>
</configuration> </configuration>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>eu.europa.ec.edelivery</groupId> <groupId>eu.europa.ec.edelivery</groupId>
......
...@@ -12,7 +12,7 @@ ...@@ -12,7 +12,7 @@
~ See the Licence for the specific language governing permissions and limitations under the Licence. ~ See the Licence for the specific language governing permissions and limitations under the Licence.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>eu.europa.ec.edelivery</groupId> <groupId>eu.europa.ec.edelivery</groupId>
......
...@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and ...@@ -15,7 +15,7 @@ See the License for the specific language governing permissions and
limitations under the License. limitations under the License.
--> -->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>eu.europa.ec.edelivery</groupId> <groupId>eu.europa.ec.edelivery</groupId>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://maven.apache.org/POM/4.0.0" xmlns="http://maven.apache.org/POM/4.0.0"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>com.test.smp</groupId> <groupId>com.test.smp</groupId>
...@@ -139,4 +139,4 @@ ...@@ -139,4 +139,4 @@
</profiles> </profiles>
</project> </project>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>eu.europa.ec.edelivery</groupId> <groupId>eu.europa.ec.edelivery</groupId>
...@@ -145,8 +145,6 @@ ...@@ -145,8 +145,6 @@
<targetPath>${project.build.directory}/webapp-classes</targetPath> <targetPath>${project.build.directory}/webapp-classes</targetPath>
</resource> </resource>
</resources> </resources>
<plugins> <plugins>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
...@@ -160,14 +158,6 @@ ...@@ -160,14 +158,6 @@
</archive> </archive>
</configuration> </configuration>
</plugin> </plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
</plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId> <artifactId>maven-assembly-plugin</artifactId>
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<property name="consolePattern" value="%d{ISO8601} [%X{smp_user}] [%X{smp_session_id}] [%X{smp_request_id}] [%thread] %5p %c{1}:%L - %m%n" scope="global"/> <property name="consolePattern" value="%d{ISO8601} [%X{smp_user}] [%X{smp_session_id}] [%X{smp_request_id}] [%thread] %5p %c{1}:%L - %m%n" scope="global"/>
<appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender"> <appender name="file" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${project.build.directory}/logs/edelivery-smp.log</file> <file>${buildDirectory}/logs/edelivery-smp.log</file>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter"> <filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator"> <evaluator class="ch.qos.logback.classic.boolex.OnMarkerEvaluator">
<marker>SECURITY</marker> <marker>SECURITY</marker>
...@@ -17,7 +17,7 @@ ...@@ -17,7 +17,7 @@
</filter> </filter>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy"> <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- rollover daily --> <!-- rollover daily -->
<fileNamePattern>${project.build.directory}/logs/edelivery-smp-%d{yyyy-MM-dd}.%i.log</fileNamePattern> <fileNamePattern>${buildDirectory}/logs/edelivery-smp-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<!-- each file should be at most 30MB, keep 60 days worth of history, but at most 20GB --> <!-- each file should be at most 30MB, keep 60 days worth of history, but at most 20GB -->
<maxFileSize>30MB</maxFileSize> <maxFileSize>30MB</maxFileSize>
<maxHistory>60</maxHistory> <maxHistory>60</maxHistory>
......
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<parent> <parent>
<groupId>eu.europa.ec.edelivery</groupId> <groupId>eu.europa.ec.edelivery</groupId>
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment