From 970e19a0746494b999d14048dcc0b6b522b96fb0 Mon Sep 17 00:00:00 2001
From: Julian Horner <julianhorner@web.de>
Date: Tue, 17 Dec 2019 15:48:14 +0100
Subject: [PATCH] Add basic application class and configuration to
 authentication service

---
 pom.xml                                       | 85 +++++++++++++------
 src/main/java/de/rtuni/ms/as/Application.java | 31 +++++++
 src/main/java/de/rtuni/ms/ds/Application.java | 51 -----------
 .../java/de/rtuni/ms/ds/DummyController.java  | 27 ------
 src/main/resources/application.yml            | 12 +++
 5 files changed, 104 insertions(+), 102 deletions(-)
 create mode 100644 src/main/java/de/rtuni/ms/as/Application.java
 delete mode 100644 src/main/java/de/rtuni/ms/ds/Application.java
 delete mode 100644 src/main/java/de/rtuni/ms/ds/DummyController.java
 create mode 100644 src/main/resources/application.yml

diff --git a/pom.xml b/pom.xml
index 7ece7f6..d7bdf75 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,43 +3,80 @@
 	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 	<modelVersion>4.0.0</modelVersion>
 
-	<groupId>de.rtuni.ms.ds</groupId>
-	<artifactId>dummy-service</artifactId>
+	<groupId>de.rtuni.ms.as</groupId>
+	<artifactId>authentication-service</artifactId>
 	<version>1.0.0</version>
 	<packaging>war</packaging>
 
+	<name>authentication-service</name>
+	<description>Authentication service for microservice architecture</description>
+
+	<properties>
+		<java.version>1.8</java.version>
+	</properties>
+
 	<parent>
 		<groupId>org.springframework.boot</groupId>
 		<artifactId>spring-boot-starter-parent</artifactId>
-		<version>2.2.1.RELEASE</version>
+		<version>2.0.0.RELEASE</version>
 	</parent>
 
-    <dependencies>
+	<dependencies>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter</artifactId>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-web</artifactId>
+		</dependency>
         <dependency>
             <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter</artifactId>
-            </dependency>
+            <artifactId>spring-boot-starter-security</artifactId>
+        </dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-tomcat</artifactId>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-devtools</artifactId>
+			<scope>runtime</scope>
+			<optional>true</optional>
+		</dependency>
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-web</artifactId>
+            <groupId>org.springframework.cloud</groupId>
+            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
         </dependency>
         <dependency>
-            <groupId>org.springframework.boot</groupId>
-            <artifactId>spring-boot-starter-tomcat</artifactId>
-            <scope>provided</scope>
+            <groupId>io.jsonwebtoken</groupId>
+            <artifactId>jjwt</artifactId>
+            <version>0.9.0</version>
         </dependency>
-    </dependencies>
+	</dependencies>
+
+	<dependencyManagement>
+		<dependencies>
+			<dependency>
+				<groupId>org.springframework.cloud</groupId>
+				<artifactId>spring-cloud-dependencies</artifactId>
+				<version>Finchley.RELEASE</version>
+				<type>pom</type>
+				<scope>import</scope>
+			</dependency>
+		</dependencies>
+	</dependencyManagement>
 
-    <build>
-        <plugins>
-            <plugin>
-                <groupId>org.springframework.boot</groupId>
-                <artifactId>spring-boot-maven-plugin</artifactId>
-                <version>2.2.1.RELEASE</version>
-                <configuration>
-                    <mainClass>de.rtuni.ms.ds.Application</mainClass>
-                </configuration>
-            </plugin>
-        </plugins>
-    </build>
+	<build>
+		<plugins>
+			<plugin>
+				<groupId>org.springframework.boot</groupId>
+				<artifactId>spring-boot-maven-plugin</artifactId>
+				<configuration>
+					<mainClass>de.rtuni.ms.as.Application</mainClass>
+				</configuration>
+			</plugin>
+		</plugins>
+	</build>
 </project>
\ No newline at end of file
diff --git a/src/main/java/de/rtuni/ms/as/Application.java b/src/main/java/de/rtuni/ms/as/Application.java
new file mode 100644
index 0000000..f024e1b
--- /dev/null
+++ b/src/main/java/de/rtuni/ms/as/Application.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2019 (C) by Julian Horner.
+ * All Rights Reserved.
+ */
+
+package de.rtuni.ms.as;
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.cloud.netflix.eureka.EnableEurekaClient;
+
+/**
+ * Authentication service for microservice architecture.
+ * 
+ * @author Julian
+ *
+ */
+@SpringBootApplication
+@EnableEurekaClient     
+public class Application {
+    //---------------------------------------------------------------------------------------------
+    
+    /**
+     * Starts the application.
+     * 
+     * @param args The arguments
+     */
+    public static void main(final String[] args) { SpringApplication.run(Application.class, args); }
+
+    //---------------------------------------------------------------------------------------------
+}
diff --git a/src/main/java/de/rtuni/ms/ds/Application.java b/src/main/java/de/rtuni/ms/ds/Application.java
deleted file mode 100644
index 00b39b5..0000000
--- a/src/main/java/de/rtuni/ms/ds/Application.java
+++ /dev/null
@@ -1,51 +0,0 @@
-/*
- * Copyright 2019 (C) by Julian Horner.
- * All Rights Reserved.
- */
-
-package de.rtuni.ms.ds;
-
-import java.util.Arrays;
-
-import org.springframework.boot.CommandLineRunner;
-import org.springframework.boot.SpringApplication;
-import org.springframework.boot.autoconfigure.SpringBootApplication;
-import org.springframework.context.ApplicationContext;
-import org.springframework.context.annotation.Bean;
-
-/**
- * @author Julian
- *
- */
-@SpringBootApplication
-public class Application {
-    //---------------------------------------------------------------------------------------------
-    
-    /**
-     * Starts the application.
-     * 
-     * @param args The arguments
-     */
-    public static void main(final String[] args) {
-        SpringApplication.run(Application.class, args);
-    }
-
-    //---------------------------------------------------------------------------------------------
-
-    @Bean
-    public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
-        return args -> {
-
-            System.out.println("Let's inspect the beans provided by Spring Boot:");
-
-            String[] beanNames = ctx.getBeanDefinitionNames();
-            Arrays.sort(beanNames);
-            for (String beanName : beanNames) {
-                System.out.println(beanName);
-            }
-
-        };
-    }
-    
-    //---------------------------------------------------------------------------------------------
-}
diff --git a/src/main/java/de/rtuni/ms/ds/DummyController.java b/src/main/java/de/rtuni/ms/ds/DummyController.java
deleted file mode 100644
index d6e1505..0000000
--- a/src/main/java/de/rtuni/ms/ds/DummyController.java
+++ /dev/null
@@ -1,27 +0,0 @@
-/*
- * Copyright 2019 (C) by Julian Horner.
- * All Rights Reserved.
- */
-
-package de.rtuni.ms.ds;
-
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-
-/**
- * Dummy controller.
- * 
- * @author Julian
- *
- */
-@RestController
-public class DummyController {
-    //---------------------------------------------------------------------------------------------
-    
-    @RequestMapping("/")
-    public String index() {
-        return "Greetings from SB";
-    }
-    
-    //---------------------------------------------------------------------------------------------
-}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
new file mode 100644
index 0000000..98429ee
--- /dev/null
+++ b/src/main/resources/application.yml
@@ -0,0 +1,12 @@
+# Spring properties
+spring:
+  application:
+    name: auth-service  # Identify this application
+
+# HTTP Server
+server.port: 4444   # HTTP (Tomcat) port
+
+eureka:
+  client:
+    serviceUrl:
+      defaultZone: http://localhost:8761/eureka/
\ No newline at end of file
-- 
GitLab