Change parent to uoa-global-parent and add new configuration for log4j2. Extend export managers to check communities from production.

This commit is contained in:
Konstantinos Triantafyllou 2022-09-26 11:50:42 +03:00
parent a3a86c6fdb
commit a9e7ea5d2c
10 changed files with 90 additions and 40 deletions

10
pom.xml
View File

@ -3,8 +3,8 @@
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>eu.dnetlib</groupId>
<artifactId>dnet45-parent</artifactId>
<version>1.0.0</version>
<artifactId>uoa-global-parent</artifactId>
<version>1.0.1</version>
</parent>
<artifactId>dnet-role-management</artifactId>
<version>1.0.3-SNAPSHOT</version>
@ -36,6 +36,12 @@
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>

View File

@ -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

View File

@ -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

View File

@ -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;

View File

@ -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<Manager> 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();
}

View File

@ -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;

View File

@ -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;

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,39 @@
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
<Properties>
<Property name="LOG_PATTERN">
%d %p %t [%c] - %m%n
</Property>
</Properties>
<Appenders>
<!-- Rolling File Appender -->
<RollingFile name="R" fileName="/var/log/dnet/dnet-role-management/dnet-role-management.log"
filePattern="/var/log/dnet/dnet-role-management/dnet-role-management-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
<RollingFile name="S" fileName="/var/log/dnet/dnet-role-management/dnet-role-management-spring.log"
filePattern="/var/log/dnet/dnet-role-management/dnet-role-management-spring-%d{yyyy-MM-dd}-%i.log">
<PatternLayout>
<Pattern>${LOG_PATTERN}</Pattern>
</PatternLayout>
<Policies>
<SizeBasedTriggeringPolicy size="10MB" />
</Policies>
<DefaultRolloverStrategy max="10"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="org.springframework" level="debug" additivity="false">
<AppenderRef ref="S"/>
</Logger>
<Root level="debug">
<AppenderRef ref="R"/>
</Root>
</Loggers>
</Configuration>