Ich habe mit der Arbeit an einem neuen Projekt begonnen, das auf einer Microservices-Architektur basiert. Die Anforderung besteht darin, bei jeder Anfrage über alle Microservices hinweg auf Benutzerdetails zuzugreifen, um bestimmte Bedingungen anhand der Benutzerinformationen zu validieren und dann mit der Anfrageverarbeitung fortzufahren.
Um dies zu erreichen, habe ich den folgenden Ansatz verfolgt:
API-Gateway:
- Validiert das JWT
- Leitet dasselbe JWT an nachgelagerte Dienste weiter
- Fügt keine benutzerdefinierten Header hinzu
Jeder Microservice:
- Erstellt den Benutzerkontext aus dem JWT
- Liest Benutzerdetails aus dem Kontext
- Entfernt die Ich muss den Benutzerdienst bei jeder Anfrage über einen Feign-Client aufrufen.
Anstatt Feign zu verwenden oder die Benutzerdetails im Redis zwischenzuspeichern, wähle ich diesen Ansatz.