summaryrefslogtreecommitdiff
path: root/microservices/README
blob: 4718ed8f62eb9ead3550516e5175227bb9a3b9d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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.