Spring Cloud Expert

Job ID: 36140463

Budget: $10 – $30 USD

I want the following (All Spring projects built with Maven, not Gradle, please):

- Spring Cloud Gateway with two load-balanced routes and a Eureka Discovery Server listed in a yaml config
- Spring Embedded Eureka Discovery Server with obscured config for ports and mappings for security
- Spring Authorization Server v1.0.1 - This service will use an h2 in memory database to hold the relevant entities such as, RegisteredClient via the RegisteredClientRepository (No need for h2 implementation of this repo), and all the relevant OAuth2 Spring Security entities that should be persisted for the User to be able to login and retrieve a JWT or an Opaque Web Token with an industry standard expiry (These should be persisted in an h2 database via CrudRepository from Spring Data JPA
- Spring Boot Front-End Project - This project will act as an OAuth2 Client use the Spring Authorization Server as an OAuth2 authentication provider (This config should be in the application.yml or bootstrap.yml and force authentication for any request that doesn't come from a browser or app with a valid JWT or Opaque token, dealers choice, in the cookie or headers respectively to the Auth Server for login), this will be a Single Page Application so you can add Thymeleaf into the dependencies as well for me. The main page can have simple buttons that make AJAX calls directly to the Gateway with the Auth Token in the header to return the Strings in the two basic Microservices discussed below
- Two Basic Microservices with endpoints returning a simple string and configuration to check the validity of each JWT/Opaque Token before allowing the request down the SecurityFilterChain

I will take care of the persistence problem on my own time, though I need a working implementation of this project within a few days. There are a few extra requirements that this project has I will list below:

- Maven Dependency Management and Build
- Java 17
- Spring Cloud Dependencies v2022.0.1
- Spring Cloud Authorization Server v1.0.1 as an auth provider, not Google, not KeyCloak, and not Facebook or GitHub either.