This is an advanced microservices project that includes the following: - An OAuth2 server to authenticate and authorize users. Key software used: Spring Authorization server - An API gateway that implements the Backend for Frontend (BFF) application architecture. Key software used: Spring Cloud API Gateway (Webflux) - An OAuth2 resource server that exposes REST endpoints. - A React.js frontend application that interacts with the API gateway. References: - The pattern used in this application is detailed here. https://www.baeldung.com/spring-cloud-gateway-bff-oauth2 - Details about Backend for Frontend application architecture https://datatracker.ietf.org/doc/html/draft-ietf-oauth-browser-based-apps#name-application-architecture-pa - OAuth2 authorization framework https://datatracker.ietf.org/doc/html/rfc6749 - OpenID https://openid.net/ Ports used: 8050 - API gateway 8051 - OAuth2 server 8052 - Resource server URLs used: Both the API gateway and the OAuth2 server are accessed by the web browser and for each of them, a session is maintained. To avoid API gateway session data being sent to the OAuth2 server while a developer runs both servers locally, they are accessed via http://localhost and http://127.0.0.1 respectively.