From a9e7ea5d2c45ad1368eb11c595c1da94657e6884 Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Mon, 26 Sep 2022 11:50:42 +0300 Subject: [PATCH] Change parent to uoa-global-parent and add new configuration for log4j2. Extend export managers to check communities from production. --- pom.xml | 10 ++++- .../config/security/RedisConfig.java | 5 ++- .../config/security/SwaggerConfig.java | 3 -- .../controllers/HealthController.java | 5 ++- .../scripts/TypeManagersExport.java | 35 +++++++++++++++-- .../services/RegistryService.java | 5 ++- .../utils/AuthoritiesUpdater.java | 5 ++- .../dnetrolemanagement/utils/HttpUtils.java | 3 -- src/main/resources/log4j.properties | 20 ---------- src/main/resources/log4j2.xml | 39 +++++++++++++++++++ 10 files changed, 90 insertions(+), 40 deletions(-) delete mode 100644 src/main/resources/log4j.properties create mode 100644 src/main/resources/log4j2.xml diff --git a/pom.xml b/pom.xml index 4726281..76ce55f 100644 --- a/pom.xml +++ b/pom.xml @@ -3,8 +3,8 @@ 4.0.0 eu.dnetlib - dnet45-parent - 1.0.0 + uoa-global-parent + 1.0.1 dnet-role-management 1.0.3-SNAPSHOT @@ -36,6 +36,12 @@ org.springframework.boot spring-boot-starter-web + + + org.springframework.boot + spring-boot-starter-logging + + org.springframework.boot diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/RedisConfig.java b/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/RedisConfig.java index 3d113e4..e99cb6b 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/RedisConfig.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/RedisConfig.java @@ -1,7 +1,8 @@ package eu.dnetlib.dnetrolemanagement.config.security; import eu.dnetlib.dnetrolemanagement.config.properties.RedisProperties; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -14,7 +15,7 @@ import org.springframework.session.web.http.HttpSessionStrategy; @Configuration public class RedisConfig { - private static final Logger logger = Logger.getLogger(RedisConfig.class); + private static final Logger logger = LogManager.getLogger(RedisConfig.class); private final RedisProperties redisProperties; @Autowired diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/SwaggerConfig.java b/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/SwaggerConfig.java index f9cccae..fe6fa0e 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/SwaggerConfig.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/config/security/SwaggerConfig.java @@ -1,8 +1,6 @@ package eu.dnetlib.dnetrolemanagement.config.security; import eu.dnetlib.dnetrolemanagement.config.properties.APIProperties; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -29,7 +27,6 @@ import java.util.List; @EnableSwagger2 public class SwaggerConfig { - private final Logger logger = LoggerFactory.getLogger(SwaggerConfig.class); private final APIProperties apiProperties; @Autowired diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java index 5f38610..571f152 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/controllers/HealthController.java @@ -3,7 +3,8 @@ package eu.dnetlib.dnetrolemanagement.controllers; import eu.dnetlib.dnetrolemanagement.config.properties.APIProperties; import eu.dnetlib.dnetrolemanagement.config.properties.RedisProperties; import eu.dnetlib.dnetrolemanagement.config.properties.RegistryProperties; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.RequestMapping; @@ -15,7 +16,7 @@ import java.util.Map; @RestController public class HealthController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); private final APIProperties apiProperties; private final RedisProperties redisProperties; private final RegistryProperties registryProperties; diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/scripts/TypeManagersExport.java b/src/main/java/eu/dnetlib/dnetrolemanagement/scripts/TypeManagersExport.java index bb7f900..c7af55d 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/scripts/TypeManagersExport.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/scripts/TypeManagersExport.java @@ -4,15 +4,19 @@ import com.google.gson.Gson; import com.google.gson.JsonArray; import eu.dnetlib.dnetrolemanagement.entities.User; import eu.dnetlib.dnetrolemanagement.services.RegistryService; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.CommandLineRunner; import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; import java.io.File; import java.io.FileNotFoundException; import java.io.PrintWriter; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; @Component @@ -33,21 +37,43 @@ public class TypeManagersExport implements CommandLineRunner { } } + private static class Community { + String id; + + public Community(String id) { + this.id = id; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + } + @Autowired RegistryService registryService; + private final Logger logger = LogManager.getLogger(TypeManagersExport.class); private final static String TYPE = "community"; + private final static String COMMUNITIES_API = "https://services.openaire.eu/openaire/community/communities"; @Override public void run(String... args) throws Exception { + RestTemplate restTemplate = new RestTemplate(); File file = new File(TYPE + "-managers.csv"); List managers = new ArrayList<>(); JsonArray cous = registryService.getCous(TYPE + "."); + Community[] communities = new Gson().fromJson(restTemplate.getForEntity(COMMUNITIES_API, String.class).getBody(), Community[].class); cous.forEach(cou -> { String entity = cou.getAsJsonObject().get("Name").getAsString().replace(TYPE + ".", ""); - Integer couId = cou.getAsJsonObject().get("Id").getAsInt(); - User[] emails = new Gson().fromJson(registryService.getUserEmailByCouId(couId, true), User[].class); - for(User email:emails) { - managers.add(new Manager(entity, email.getEmail())); + if(Arrays.stream(communities).anyMatch(community -> community.getId().equals(entity))) { + Integer couId = cou.getAsJsonObject().get("Id").getAsInt(); + User[] emails = new Gson().fromJson(registryService.getUserEmailByCouId(couId, true), User[].class); + for(User email:emails) { + managers.add(new Manager(entity, email.getEmail())); + } } }); try (PrintWriter pw = new PrintWriter(file)) { @@ -55,6 +81,7 @@ public class TypeManagersExport implements CommandLineRunner { managers.stream() .map(Manager::toCSV) .forEach(pw::println); + logger.info("Export has been finished"); } catch (FileNotFoundException e) { e.printStackTrace(); } diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java index dde4dae..9d9678f 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/services/RegistryService.java @@ -6,7 +6,8 @@ import com.google.gson.JsonObject; import eu.dnetlib.dnetrolemanagement.config.properties.RegistryProperties; import eu.dnetlib.dnetrolemanagement.utils.HttpUtils; import eu.dnetlib.dnetrolemanagement.utils.JsonUtils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.mitre.openid.connect.model.OIDCAuthenticationToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.context.SecurityContextHolder; @@ -17,7 +18,7 @@ import java.util.*; @Service public class RegistryService { - private static final Logger logger = Logger.getLogger(RegistryService.class); + private static final Logger logger = LogManager.getLogger(RegistryService.class); private final String coid; diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUpdater.java b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUpdater.java index 8e7dc32..129bbe7 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUpdater.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/AuthoritiesUpdater.java @@ -1,6 +1,7 @@ package eu.dnetlib.dnetrolemanagement.utils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.mitre.openid.connect.model.OIDCAuthenticationToken; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.core.Authentication; @@ -21,7 +22,7 @@ import java.util.Map; @Service public class AuthoritiesUpdater extends HttpSessionSecurityContextRepository { - private static final Logger logger = Logger.getLogger(AuthoritiesUpdater.class); + private final Logger logger = LogManager.getLogger(AuthoritiesUpdater.class); @Autowired FindByIndexNameSessionRepository sessions; diff --git a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java index 58bc233..2ad91af 100644 --- a/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java +++ b/src/main/java/eu/dnetlib/dnetrolemanagement/utils/HttpUtils.java @@ -4,7 +4,6 @@ import com.google.gson.JsonElement; import com.google.gson.JsonObject; import com.google.gson.JsonParser; import eu.dnetlib.dnetrolemanagement.config.properties.RegistryProperties; -import org.apache.log4j.Logger; import org.apache.tomcat.util.codec.binary.Base64; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.*; @@ -17,8 +16,6 @@ import java.util.Map; @Component public class HttpUtils { - private static final Logger logger = Logger.getLogger(HttpUtils.class); - private final RegistryProperties registryProperties; @Autowired diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index 95a0de2..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,20 +0,0 @@ -log4j.rootLogger = DEBUG, R - -log4j.logger.eu.dnetlib = DEBUG -log4j.logger.org.springframework = DEBUG, S - -log4j.additivity.org.springframework = false - -log4j.appender.R=org.apache.log4j.RollingFileAppender -log4j.appender.R.File=/var/log/dnet/dnet-role-management/dnet-role-management.log -log4j.appender.R.MaxFileSize=10MB -log4j.appender.R.MaxBackupIndex=10 -log4j.appender.R.layout=org.apache.log4j.PatternLayout -log4j.appender.R.layout.ConversionPattern= %d %p %t [%c] - %m%n - -log4j.appender.S=org.apache.log4j.RollingFileAppender -log4j.appender.S.File=/var/log/dnet/dnet-role-management/dnet-role-management-spring.log -log4j.appender.S.MaxFileSize=10MB -log4j.appender.S.MaxBackupIndex=10 -log4j.appender.S.layout=org.apache.log4j.PatternLayout -log4j.appender.S.layout.ConversionPattern= %d %p %t [%c] - %m%n \ No newline at end of file diff --git a/src/main/resources/log4j2.xml b/src/main/resources/log4j2.xml new file mode 100644 index 0000000..7d73123 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,39 @@ + + + + + %d %p %t [%c] - %m%n + + + + + + + ${LOG_PATTERN} + + + + + + + + + ${LOG_PATTERN} + + + + + + + + + + + + + + + + \ No newline at end of file