From 733f9729162faeecdebd41c8918f811b6e757b20 Mon Sep 17 00:00:00 2001 From: "k.triantafyllou" Date: Thu, 18 May 2023 15:44:23 +0300 Subject: [PATCH] Initialize client management with login-core --- .gitignore | 57 ++++++++++----- pom.xml | 69 +++++++++++++++++++ .../ClientManagementApplication.java | 22 ++++++ .../clientmanagement/ServletInitializer.java | 13 ++++ .../controllers/HealthController.java | 36 ++++++++++ 5 files changed, 180 insertions(+), 17 deletions(-) create mode 100644 pom.xml create mode 100644 src/main/java/eu/dnetlib/clientmanagement/ClientManagementApplication.java create mode 100644 src/main/java/eu/dnetlib/clientmanagement/ServletInitializer.java create mode 100644 src/main/java/eu/dnetlib/clientmanagement/controllers/HealthController.java diff --git a/.gitignore b/.gitignore index a7e4258..aa4214b 100644 --- a/.gitignore +++ b/.gitignore @@ -22,24 +22,47 @@ # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* -replay_pid* -# ---> Maven +# ---> JetBrains +# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm, CLion, Android Studio, WebStorm and Rider +# Reference: https://intellij-support.jetbrains.com/hc/en-us/articles/206544839 + +# User-specific stuff +.idea/ target/ -pom.xml.tag -pom.xml.releaseBackup -pom.xml.versionsBackup -pom.xml.next -release.properties -dependency-reduced-pom.xml -buildNumber.properties -.mvn/timing.properties -# https://github.com/takari/maven-wrapper#usage-without-binary-jar -.mvn/wrapper/maven-wrapper.jar -# Eclipse m2e generated files -# Eclipse Core -.project -# JDT-specific (Eclipse Java Development Tools) -.classpath +# CMake +cmake-build-*/ +# Mongo Explorer plugin +.idea/**/mongoSettings.xml + +# File-based project format +*.iws + +# IntelliJ +out/ + +# mpeltonen/sbt-idea plugin +.idea_modules/ + +# JIRA plugin +atlassian-ide-plugin.xml + +# Cursive Clojure plugin +.idea/replstate.xml + +# Crashlytics plugin (for Android Studio and IntelliJ) +com_crashlytics_export_strings.xml +crashlytics.properties +crashlytics-build.properties +fabric.properties + +# Editor-based Rest Client +.idea/httpRequests + +# Android studio 3.1+ serialized cache file +.idea/caches/build_file_checksums.ser + +# Local Deployment scripts +make.sh diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..1e9758b --- /dev/null +++ b/pom.xml @@ -0,0 +1,69 @@ + + + 4.0.0 + + eu.dnetlib + uoa-spring-boot-parent + 1.0.0 + + client-management + 1.0-SNAPSHOT + war + client-management + + scm:git:gitea@code-repo.d4science.org:MaDgIK/client-management.git + HEAD + + + + eu.dnetlib + uoa-login-core + 2.0.0 + + + + io.springfox + springfox-swagger2 + ${swagger-version} + + + + io.springfox + springfox-swagger-ui + ${swagger-version} + + + + + + src/main/resources + true + + + + + org.springframework.boot + spring-boot-maven-plugin + ${spring-boot-version} + + eu.dnetlib.clientmanagement.ClientManagementApplication + true + + + + + repackage + + + + + + maven-war-plugin + 2.6 + + false + + + + + diff --git a/src/main/java/eu/dnetlib/clientmanagement/ClientManagementApplication.java b/src/main/java/eu/dnetlib/clientmanagement/ClientManagementApplication.java new file mode 100644 index 0000000..bea5170 --- /dev/null +++ b/src/main/java/eu/dnetlib/clientmanagement/ClientManagementApplication.java @@ -0,0 +1,22 @@ +package eu.dnetlib.clientmanagement; + +import eu.dnetlib.authentication.configuration.AuthenticationConfiguration; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; +import org.springframework.context.annotation.PropertySource; +import org.springframework.context.annotation.PropertySources; + +@SpringBootApplication(scanBasePackages = {"eu.dnetlib.clientmanagement"}) +@PropertySources({ + @PropertySource("classpath:authentication.properties"), + @PropertySource(value = "classpath:dnet-override.properties", ignoreResourceNotFound = true) +}) +@Import({AuthenticationConfiguration.class}) +public class ClientManagementApplication { + + public static void main(String[] args) { + SpringApplication.run(ClientManagementApplication.class, args); + } + +} diff --git a/src/main/java/eu/dnetlib/clientmanagement/ServletInitializer.java b/src/main/java/eu/dnetlib/clientmanagement/ServletInitializer.java new file mode 100644 index 0000000..af42aa1 --- /dev/null +++ b/src/main/java/eu/dnetlib/clientmanagement/ServletInitializer.java @@ -0,0 +1,13 @@ +package eu.dnetlib.clientmanagement; + +import org.springframework.boot.builder.SpringApplicationBuilder; +import org.springframework.boot.web.support.SpringBootServletInitializer; + +public class ServletInitializer extends SpringBootServletInitializer { + + @Override + protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { + return application.sources(ClientManagementApplication.class); + } + +} diff --git a/src/main/java/eu/dnetlib/clientmanagement/controllers/HealthController.java b/src/main/java/eu/dnetlib/clientmanagement/controllers/HealthController.java new file mode 100644 index 0000000..6db9b6f --- /dev/null +++ b/src/main/java/eu/dnetlib/clientmanagement/controllers/HealthController.java @@ -0,0 +1,36 @@ +package eu.dnetlib.clientmanagement.controllers; + +import eu.dnetlib.authentication.configuration.AuthenticationConfiguration; +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; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import java.util.Map; + +@RestController +public class HealthController { + private final Logger log = LogManager.getLogger(this.getClass()); + private final AuthenticationConfiguration configuration; + + @Autowired + public HealthController(AuthenticationConfiguration configuration) { + this.configuration = configuration; + } + + @RequestMapping(value = {"", "/health_check"}, method = RequestMethod.GET) + public String hello() { + log.debug("Hello from Client Management service!"); + return "Hello from Client Management service!"; + } + + @PreAuthorize("hasAnyAuthority('PORTAL_ADMINISTRATOR')") + @RequestMapping(value = "/health_check/advanced", method = RequestMethod.GET) + public Map checkEverything() { + Map response = configuration.getProperties(); + return response; + } +}