From 25d12c9c2a7740aa28bb1aa6aacfc2077ce58d7a Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Mon, 10 Oct 2022 15:34:08 +0300 Subject: [PATCH 1/3] pom.xml: Updated parent and versions of libraries | Moved to log4j2 & set spring log file as default | Added swagger --- pom.xml | 160 +++++------------- .../UoaOrcidServiceApplication.java | 3 +- .../UoaOrcidServiceConfiguration.java | 5 +- .../configuration/SwaggerConfig.java | 86 ++++++++++ .../properties/APIProperties.java | 38 +++++ .../controllers/MetricsController.java | 8 +- .../OrcidServiceCheckDeployController.java | 9 +- .../controllers/SimpleErrorController.java | 12 +- .../controllers/UserTokensController.java | 10 +- .../controllers/WorkController.java | 7 +- .../MongoDBUserTokensDAOImpl.java | 5 +- .../customDAOsImpl/MongoDBWorkDAOImpl.java | 7 +- .../handlers/ExceptionsHandler.java | 8 +- .../handlers/utils/AESUtils.java | 7 +- .../handlers/utils/RolesUtils.java | 5 +- .../services/MetricsService.java | 5 +- .../services/UserTokensService.java | 7 +- .../uoaorcidservice/services/WorkService.java | 5 +- src/main/resources/application.properties | 4 + src/main/resources/log4j.properties | 29 ---- src/main/resources/log4j2.xml | 52 ++++++ 21 files changed, 272 insertions(+), 200 deletions(-) create mode 100644 src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java create mode 100644 src/main/java/eu/dnetlib/uoaorcidservice/configuration/properties/APIProperties.java 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 9a7df97..0f044cf 100644 --- a/pom.xml +++ b/pom.xml @@ -2,133 +2,80 @@ 4.0.0 - - eu.dnetlib - uoa-orcid-service + uoa-orcid-service 1.0.1-SNAPSHOT war - + + scm:git:gitea@code-repo.d4science.org:MaDgIK/uoa-orcid-service.git + + + eu.dnetlib + uoa-spring-boot-parent + 1.0.0 + uoa-orcid-service - - - org.springframework.boot - spring-boot-starter-parent - 1.5.11.RELEASE - - - - - - - - - - UTF-8 UTF-8 - 1.8 ${maven.build.timestamp} E MMM dd HH:mm:ss z yyyy - - - - - - - - - - - - org.springframework.boot spring-boot-starter-data-mongodb - - org.springframework.boot - spring-boot-starter-web - - - org.springframework.boot - spring-boot-starter-logging - - - - - org.springframework.boot - spring-boot-starter-tomcat - provided - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-security - - - - log4j - log4j - 1.2.17 - - - com.google.code.gson - gson - 2.8.2 - javax.mail mail 1.5.0-b01 - - commons-io - commons-io - 20030203.000550 - + + + + + eu.dnetlib uoa-authorization-library - 2.1.0 + 2.1.3 - - - - + + + io.springfox + springfox-swagger2 + ${swagger-version} + + + + io.springfox + springfox-swagger-ui + ${swagger-version} + - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - - - - - - - - - + + + org.springframework.boot + spring-boot-maven-plugin + + eu.dnetlib.uoaorcidservice.UoaOrcidServiceApplication + true + + + + + repackage + + + + org.apache.maven.plugins maven-war-plugin @@ -137,7 +84,7 @@ false - + uoa-orcid-service @@ -146,23 +93,4 @@ - - - - - dnet45-releases - D-Net 45 Releases - http://maven.research-infrastructures.eu/nexus/content/repositories/dnet45-releases - - true - - - false - - default - - - - - diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceApplication.java b/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceApplication.java index cb96468..cffebfa 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceApplication.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceApplication.java @@ -2,6 +2,7 @@ package eu.dnetlib.uoaorcidservice; import eu.dnetlib.uoaauthorizationlibrary.configuration.AuthorizationConfiguration; import eu.dnetlib.uoaorcidservice.configuration.GlobalVars; +import eu.dnetlib.uoaorcidservice.configuration.properties.APIProperties; import eu.dnetlib.uoaorcidservice.configuration.properties.MongoConfig; //import eu.dnetlib.uoaauthorizationlibrary.configuration.AuthorizationConfiguration; import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig; @@ -19,7 +20,7 @@ import org.springframework.context.annotation.PropertySources; @PropertySource("classpath:orcidservice.properties"), @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) }) -@EnableConfigurationProperties({MongoConfig.class, AESUtils.class, OrcidConfig.class, GlobalVars.class}) +@EnableConfigurationProperties({MongoConfig.class, AESUtils.class, OrcidConfig.class, GlobalVars.class, APIProperties.class}) @Import(AuthorizationConfiguration.class) public class UoaOrcidServiceApplication { diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceConfiguration.java b/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceConfiguration.java index 537bcff..9d29f21 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceConfiguration.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/UoaOrcidServiceConfiguration.java @@ -1,6 +1,7 @@ package eu.dnetlib.uoaorcidservice; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.PropertySourcesPlaceholderConfigurer; @@ -9,7 +10,7 @@ import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter @Configuration public class UoaOrcidServiceConfiguration extends WebMvcConfigurerAdapter { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Bean public static PropertySourcesPlaceholderConfigurer propertySourcesPlaceholderConfigurer() { diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java new file mode 100644 index 0000000..c883a90 --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java @@ -0,0 +1,86 @@ +package eu.dnetlib.uoaorcidservice.configuration; + +import eu.dnetlib.uoaorcidservice.configuration.properties.APIProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Collections; +import java.util.List; + +/** + * Swagger configuration class + */ +@Configuration +@Profile({"swagger"}) +@EnableSwagger2 +public class SwaggerConfig extends WebMvcConfigurerAdapter { + + private final APIProperties apiProperties; + + @Autowired + public SwaggerConfig(APIProperties apiProperties) { + this.apiProperties = apiProperties; + } + + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.any()) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title(this.apiProperties.getTitle()) + .description(this.apiProperties.getDescription()) + .version(this.apiProperties.getVersion()) + .build(); + } + + private List globalParameterList() { + Parameter authTokenHeader = new ParameterBuilder() + .name("Session") // name of the header + .modelRef(new ModelRef("string")) // data-type of the header + .required(false) + .parameterType("header") + .description("Session ID") + .build(); + return Collections.singletonList(authTokenHeader); + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); + registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); + registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); + registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} + diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/configuration/properties/APIProperties.java b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/properties/APIProperties.java new file mode 100644 index 0000000..22f8798 --- /dev/null +++ b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/properties/APIProperties.java @@ -0,0 +1,38 @@ +package eu.dnetlib.uoaorcidservice.configuration.properties; + +import org.springframework.boot.context.properties.ConfigurationProperties; + +@ConfigurationProperties("api") +public class APIProperties { + + private String title; + private String description; + private String version; + + public APIProperties() { + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getVersion() { + return version; + } + + public void setVersion(String version) { + this.version = version; + } +} diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/MetricsController.java b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/MetricsController.java index 427fd68..5d46619 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/MetricsController.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/MetricsController.java @@ -1,8 +1,8 @@ package eu.dnetlib.uoaorcidservice.controllers; -import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig; import eu.dnetlib.uoaorcidservice.services.MetricsService; -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.CrossOrigin; @@ -15,8 +15,8 @@ import java.util.List; @RestController @CrossOrigin(origins = "*") public class MetricsController { - private final Logger log = Logger.getLogger(this.getClass()); - private final Logger orcid_log = Logger.getLogger("ORCID-" + this.getClass().getName()); + private final Logger log = LogManager.getLogger(this.getClass()); + private final Logger orcid_log = LogManager.getLogger("ORCID-" + this.getClass().getName()); @Autowired private MetricsService metricsService; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/OrcidServiceCheckDeployController.java b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/OrcidServiceCheckDeployController.java index a62907d..46f42c2 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/OrcidServiceCheckDeployController.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/OrcidServiceCheckDeployController.java @@ -3,15 +3,13 @@ package eu.dnetlib.uoaorcidservice.controllers; import com.mongodb.BasicDBObject; import com.mongodb.CommandResult; import com.mongodb.DBObject; -import com.mongodb.MongoTimeoutException; import eu.dnetlib.uoaorcidservice.configuration.GlobalVars; import eu.dnetlib.uoaorcidservice.configuration.mongo.MongoConnection; import eu.dnetlib.uoaorcidservice.configuration.properties.MongoConfig; import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig; import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils; -import org.apache.log4j.Logger; -import org.bson.*; -import org.bson.conversions.Bson; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.security.access.prepost.PreAuthorize; @@ -20,14 +18,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; -import java.util.Date; import java.util.HashMap; import java.util.Map; @RestController @CrossOrigin(origins = "*") public class OrcidServiceCheckDeployController { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private MongoConnection mongoConnection; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/SimpleErrorController.java b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/SimpleErrorController.java index e62b1ec..b7b9638 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/SimpleErrorController.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/SimpleErrorController.java @@ -1,11 +1,10 @@ package eu.dnetlib.uoaorcidservice.controllers; import eu.dnetlib.uoaorcidservice.responses.ExceptionResponse; -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.boot.autoconfigure.web.ErrorAttributes; import org.springframework.boot.autoconfigure.web.ErrorController; -//import org.springframework.boot.web.servlet.error.ErrorAttributes; -//import org.springframework.boot.web.servlet.error.ErrorController; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.util.Assert; @@ -14,9 +13,6 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.ServletRequestAttributes; -import org.springframework.web.context.request.ServletWebRequest; - -import javax.servlet.RequestDispatcher; import javax.servlet.http.HttpServletRequest; import java.util.Map; @@ -26,8 +22,8 @@ import java.util.Map; @CrossOrigin(origins = "*") @RequestMapping("/error") public class SimpleErrorController implements ErrorController { - private final Logger log = Logger.getLogger(this.getClass()); - private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName()); + private final Logger log = LogManager.getLogger(this.getClass()); + private final Logger orcid_log = LogManager.getLogger("ORCID-"+this.getClass().getName()); private final ErrorAttributes errorAttributes; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/UserTokensController.java b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/UserTokensController.java index 59c3f97..d016b0b 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/UserTokensController.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/UserTokensController.java @@ -2,10 +2,10 @@ package eu.dnetlib.uoaorcidservice.controllers; import eu.dnetlib.uoaorcidservice.configuration.properties.OrcidConfig; import eu.dnetlib.uoaorcidservice.entities.UserTokens; -import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils; import eu.dnetlib.uoaorcidservice.responses.SingleValueWrapperResponse; import eu.dnetlib.uoaorcidservice.services.UserTokensService; -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.http.*; import org.springframework.security.access.AuthorizationServiceException; @@ -22,16 +22,14 @@ import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; -import java.util.ArrayList; -import java.util.List; @RestController //@RequestMapping("/orcid") @PreAuthorize("isAuthenticated()") @CrossOrigin(origins = "*") public class UserTokensController { - private final Logger log = Logger.getLogger(this.getClass()); - private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName()); + private final Logger log = LogManager.getLogger(this.getClass()); + private final Logger orcid_log = LogManager.getLogger("ORCID-"+this.getClass().getName()); @Autowired private OrcidConfig orcidConfig; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/WorkController.java b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/WorkController.java index 35b125c..d6cbca5 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/controllers/WorkController.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/controllers/WorkController.java @@ -10,7 +10,8 @@ import eu.dnetlib.uoaorcidservice.handlers.ConflictException; import eu.dnetlib.uoaorcidservice.handlers.ContentNotFoundException; import eu.dnetlib.uoaorcidservice.services.UserTokensService; import eu.dnetlib.uoaorcidservice.services.WorkService; -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.http.*; import org.springframework.security.access.AuthorizationServiceException; @@ -34,8 +35,8 @@ import java.util.*; @PreAuthorize("isAuthenticated()") @CrossOrigin(origins = "*") public class WorkController { - private final Logger log = Logger.getLogger(this.getClass()); - private final Logger orcid_log = Logger.getLogger("ORCID-"+this.getClass().getName()); + private final Logger log = LogManager.getLogger(this.getClass()); + private final Logger orcid_log = LogManager.getLogger("ORCID-"+this.getClass().getName()); @Autowired private OrcidConfig orcidConfig; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBUserTokensDAOImpl.java b/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBUserTokensDAOImpl.java index a603025..c9be825 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBUserTokensDAOImpl.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBUserTokensDAOImpl.java @@ -2,7 +2,8 @@ package eu.dnetlib.uoaorcidservice.dao.customDAOsImpl; import com.mongodb.BasicDBObject; import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBUserTokensDAOCustom; -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.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -16,7 +17,7 @@ import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; import static org.springframework.data.mongodb.core.aggregation.Aggregation.newAggregationOptions; public class MongoDBUserTokensDAOImpl implements MongoDBUserTokensDAOCustom { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); private final MongoTemplate mongoTemplate; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBWorkDAOImpl.java b/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBWorkDAOImpl.java index 4543073..b6d7c48 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBWorkDAOImpl.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/dao/customDAOsImpl/MongoDBWorkDAOImpl.java @@ -2,10 +2,9 @@ package eu.dnetlib.uoaorcidservice.dao.customDAOsImpl; import com.mongodb.BasicDBObject; import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBWorkDAOCustom; -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.beans.factory.annotation.Qualifier; -import org.springframework.context.annotation.Primary; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.aggregation.*; @@ -15,7 +14,7 @@ import java.util.List; import static org.springframework.data.mongodb.core.aggregation.Aggregation.*; public class MongoDBWorkDAOImpl implements MongoDBWorkDAOCustom { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); private final MongoTemplate mongoTemplate; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/ExceptionsHandler.java b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/ExceptionsHandler.java index 5206563..a0edfb9 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/ExceptionsHandler.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/ExceptionsHandler.java @@ -1,11 +1,9 @@ package eu.dnetlib.uoaorcidservice.handlers; -//import eu.dnetlib.uoaadmintoolslibrary.responses.ExceptionResponse; - -//import eu.dnetlib.uoaadmintoolslibrary.handlers.InvalidReCaptchaException; import com.google.gson.JsonSyntaxException; import eu.dnetlib.uoaorcidservice.responses.ExceptionResponse; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.security.access.AuthorizationServiceException; @@ -16,7 +14,7 @@ import java.nio.file.AccessDeniedException; @ControllerAdvice public class ExceptionsHandler { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); // @ExceptionHandler(MissingServletRequestParameterException.class) // public ResponseEntity invalidInput(Exception ex) { diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/AESUtils.java b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/AESUtils.java index 7a95850..1eca49e 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/AESUtils.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/AESUtils.java @@ -1,6 +1,7 @@ package eu.dnetlib.uoaorcidservice.handlers.utils; -import org.apache.log4j.Logger; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.springframework.boot.context.properties.ConfigurationProperties; import javax.crypto.Cipher; @@ -10,11 +11,9 @@ import javax.crypto.SecretKey; import javax.crypto.BadPaddingException; import javax.crypto.KeyGenerator; import javax.crypto.SecretKeyFactory; -import javax.crypto.SealedObject; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.PBEKeySpec; import javax.crypto.spec.SecretKeySpec; -import javax.xml.bind.DatatypeConverter; import java.io.*; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; @@ -27,7 +26,7 @@ import java.util.Base64; @ConfigurationProperties("orcidservice.encryption") public class AESUtils { - private static final Logger log = Logger.getLogger(AESUtils.class); + private static final Logger log = LogManager.getLogger(AESUtils.class); private static String password; public String getPassword() { diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/RolesUtils.java b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/RolesUtils.java index f65d760..2d2f9f8 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/RolesUtils.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/handlers/utils/RolesUtils.java @@ -1,7 +1,8 @@ package eu.dnetlib.uoaorcidservice.handlers.utils; import eu.dnetlib.uoaauthorizationlibrary.security.AuthorizationService; -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.stereotype.Component; @@ -12,7 +13,7 @@ public class RolesUtils { @Autowired private AuthorizationService authorizationService; - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); public List getRoles() { return authorizationService.getRoles(); diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/services/MetricsService.java b/src/main/java/eu/dnetlib/uoaorcidservice/services/MetricsService.java index 1924e0f..198a48c 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/services/MetricsService.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/services/MetricsService.java @@ -4,7 +4,8 @@ import eu.dnetlib.uoaorcidservice.dao.MetricsDAO; import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBUserTokensDAOCustom; import eu.dnetlib.uoaorcidservice.dao.customDAOs.MongoDBWorkDAOCustom; import eu.dnetlib.uoaorcidservice.entities.Metrics; -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.beans.factory.annotation.Qualifier; import org.springframework.scheduling.annotation.EnableScheduling; @@ -18,7 +19,7 @@ import java.util.*; @EnableScheduling @Service public class MetricsService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired @Qualifier("mongoDBWorkDAO") diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/services/UserTokensService.java b/src/main/java/eu/dnetlib/uoaorcidservice/services/UserTokensService.java index a2eaf8b..e5de85e 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/services/UserTokensService.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/services/UserTokensService.java @@ -5,15 +5,14 @@ import eu.dnetlib.uoaorcidservice.dao.UserTokensDAO; import eu.dnetlib.uoaorcidservice.entities.UserTokens; import eu.dnetlib.uoaorcidservice.handlers.utils.AESUtils; import eu.dnetlib.uoaorcidservice.handlers.utils.RolesUtils; -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.stereotype.Service; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.NoSuchPaddingException; -import javax.crypto.SecretKey; -import javax.crypto.spec.IvParameterSpec; import java.io.BufferedReader; import java.io.IOException; import java.io.StringReader; @@ -26,7 +25,7 @@ import java.util.List; @Service public class UserTokensService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private UserTokensDAO userTokensDAO; diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/services/WorkService.java b/src/main/java/eu/dnetlib/uoaorcidservice/services/WorkService.java index ac60620..d930ded 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/services/WorkService.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/services/WorkService.java @@ -2,7 +2,8 @@ package eu.dnetlib.uoaorcidservice.services; import eu.dnetlib.uoaorcidservice.dao.WorkDAO; import eu.dnetlib.uoaorcidservice.entities.Work; -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.stereotype.Service; @@ -10,7 +11,7 @@ import java.util.List; @Service public class WorkService { - private final Logger log = Logger.getLogger(this.getClass()); + private final Logger log = LogManager.getLogger(this.getClass()); @Autowired private WorkDAO workDAO; diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index e69de29..05b86ff 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -0,0 +1,4 @@ +#static properties +api.title = Uoa Orcid Service Documentation Swagger +api.description = Uoa Orcid Service is a service which communicates with ORCID API, sends and saves locally ORCiD claims from users +api.version = ${project.version} \ No newline at end of file diff --git a/src/main/resources/log4j.properties b/src/main/resources/log4j.properties deleted file mode 100644 index b121df3..0000000 --- a/src/main/resources/log4j.properties +++ /dev/null @@ -1,29 +0,0 @@ -log4j.rootLogger = DEBUG, R - -log4j.logger.eu.dnetlib = DEBUG -log4j.logger.ORCID-eu.dnetlib = DEBUG, ORCID -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/uoa-orcid-service/uoa-orcid-service.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/uoa-orcid-service/uoa-orcid-service-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 - -#log4j.ORCID.name = ORCID -log4j.appender.ORCID=org.apache.log4j.RollingFileAppender -log4j.appender.ORCID.File=/var/log/dnet/uoa-orcid-service/uoa-orcid-service-orcid.log -log4j.appender.ORCID.MaxFileSize=10MB -log4j.appender.ORCID.MaxBackupIndex=10 -log4j.appender.ORCID.layout=org.apache.log4j.PatternLayout -log4j.appender.ORCID.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..79b7381 --- /dev/null +++ b/src/main/resources/log4j2.xml @@ -0,0 +1,52 @@ + + + + + %d %p %t [%c] - %m%n + + + + + + + ${LOG_PATTERN} + + + + + + + + + ${LOG_PATTERN} + + + + + + + + + ${LOG_PATTERN} + + + + + + + + + + + + + + + + + + + \ No newline at end of file From 189602566de7ddd29dec816618ac1b61e9d09e6c Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Thu, 20 Oct 2022 10:31:30 +0300 Subject: [PATCH 2/3] [Orcid Service | log4j]: SwaggerConfig.java: Updated swagger to add separate folders for libraries. --- .../configuration/SwaggerConfig.java | 183 ++++++++++-------- 1 file changed, 97 insertions(+), 86 deletions(-) diff --git a/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java index c883a90..41af40e 100644 --- a/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java +++ b/src/main/java/eu/dnetlib/uoaorcidservice/configuration/SwaggerConfig.java @@ -1,86 +1,97 @@ -package eu.dnetlib.uoaorcidservice.configuration; - -import eu.dnetlib.uoaorcidservice.configuration.properties.APIProperties; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Bean; -import org.springframework.context.annotation.Configuration; -import org.springframework.context.annotation.Profile; -import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; -import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; -import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; -import springfox.documentation.builders.ApiInfoBuilder; -import springfox.documentation.builders.ParameterBuilder; -import springfox.documentation.builders.PathSelectors; -import springfox.documentation.builders.RequestHandlerSelectors; -import springfox.documentation.schema.ModelRef; -import springfox.documentation.service.ApiInfo; -import springfox.documentation.service.Parameter; -import springfox.documentation.spi.DocumentationType; -import springfox.documentation.spring.web.plugins.Docket; -import springfox.documentation.swagger2.annotations.EnableSwagger2; - -import java.util.Collections; -import java.util.List; - -/** - * Swagger configuration class - */ -@Configuration -@Profile({"swagger"}) -@EnableSwagger2 -public class SwaggerConfig extends WebMvcConfigurerAdapter { - - private final APIProperties apiProperties; - - @Autowired - public SwaggerConfig(APIProperties apiProperties) { - this.apiProperties = apiProperties; - } - - - @Bean - public Docket createRestApi() { - return new Docket(DocumentationType.SWAGGER_2) -// .globalOperationParameters(globalParameterList()) - .apiInfo(apiInfo()) - .select() - .apis(RequestHandlerSelectors.any()) - .paths(PathSelectors.any()) - .build(); - } - - private ApiInfo apiInfo() { - return new ApiInfoBuilder() - .title(this.apiProperties.getTitle()) - .description(this.apiProperties.getDescription()) - .version(this.apiProperties.getVersion()) - .build(); - } - - private List globalParameterList() { - Parameter authTokenHeader = new ParameterBuilder() - .name("Session") // name of the header - .modelRef(new ModelRef("string")) // data-type of the header - .required(false) - .parameterType("header") - .description("Session ID") - .build(); - return Collections.singletonList(authTokenHeader); - } - - @Override - public void addViewControllers(ViewControllerRegistry registry) { - registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); - registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); - registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); - registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); - } - - @Override - public void addResourceHandlers(ResourceHandlerRegistry registry) { - registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); - registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); - } - -} - +package eu.dnetlib.uoaorcidservice.configuration; + +import eu.dnetlib.uoaorcidservice.configuration.properties.APIProperties; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Profile; +import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; +import org.springframework.web.servlet.config.annotation.ViewControllerRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; +import springfox.documentation.builders.ApiInfoBuilder; +import springfox.documentation.builders.ParameterBuilder; +import springfox.documentation.builders.PathSelectors; +import springfox.documentation.builders.RequestHandlerSelectors; +import springfox.documentation.schema.ModelRef; +import springfox.documentation.service.ApiInfo; +import springfox.documentation.service.Parameter; +import springfox.documentation.spi.DocumentationType; +import springfox.documentation.spring.web.plugins.Docket; +import springfox.documentation.swagger2.annotations.EnableSwagger2; + +import java.util.Collections; +import java.util.List; + +/** + * Swagger configuration class + */ +@Configuration +@Profile({"swagger"}) +@EnableSwagger2 +public class SwaggerConfig extends WebMvcConfigurerAdapter { + + private final APIProperties apiProperties; + + @Autowired + public SwaggerConfig(APIProperties apiProperties) { + this.apiProperties = apiProperties; + } + + + @Bean + public Docket createRestApi() { + return new Docket(DocumentationType.SWAGGER_2) +// .globalOperationParameters(globalParameterList()) + .apiInfo(apiInfo()) + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaorcidservice.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + @Bean + public Docket createRestApiAuthorizationLibrary() { + return new Docket(DocumentationType.SWAGGER_2) + .apiInfo(apiInfo()) + .groupName("Authorization Library") + .select() + .apis(RequestHandlerSelectors.basePackage("eu.dnetlib.uoaauthorizationlibrary.controllers")) + .paths(PathSelectors.any()) + .build(); + } + + private ApiInfo apiInfo() { + return new ApiInfoBuilder() + .title(this.apiProperties.getTitle()) + .description(this.apiProperties.getDescription()) + .version(this.apiProperties.getVersion()) + .build(); + } + + private List globalParameterList() { + Parameter authTokenHeader = new ParameterBuilder() + .name("Session") // name of the header + .modelRef(new ModelRef("string")) // data-type of the header + .required(false) + .parameterType("header") + .description("Session ID") + .build(); + return Collections.singletonList(authTokenHeader); + } + + @Override + public void addViewControllers(ViewControllerRegistry registry) { + registry.addRedirectViewController("/v2/api-docs", "/v2/api-docs"); + registry.addRedirectViewController("/swagger-resources/configuration/ui", "/swagger-resources/configuration/ui"); + registry.addRedirectViewController("/swagger-resources/configuration/security", "/swagger-resources/configuration/security"); + registry.addRedirectViewController("/swagger-resources", "/swagger-resources"); + } + + @Override + public void addResourceHandlers(ResourceHandlerRegistry registry) { + registry.addResourceHandler("/swagger-ui.html**").addResourceLocations("classpath:/META-INF/resources/swagger-ui.html"); + registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); + } + +} + From d2f181a6c1e62c67160002957828bac44c141534 Mon Sep 17 00:00:00 2001 From: "konstantina.galouni" Date: Tue, 24 Oct 2023 13:43:31 +0300 Subject: [PATCH 3/3] [Orcid Service | log4j]: pom.xml: Added ${spring-boot-version} in spring-boot-maven-plugin. --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 0f044cf..ea09187 100644 --- a/pom.xml +++ b/pom.xml @@ -64,6 +64,7 @@ org.springframework.boot spring-boot-maven-plugin + ${spring-boot-version} eu.dnetlib.uoaorcidservice.UoaOrcidServiceApplication true