REST-Service-Aufruf mit Camel, der eine Authentifizierung erfordert, die zuerst aufgerufen wird

9

Camel muss den REST-Service für eine Integration aufrufen. Der REST-Service verfügt jedoch über eine Authentifizierungs-API (POST-API), die zuerst aufgerufen werden muss, um ein Token zu erhalten, und weitere nachfolgende API-Aufrufe müssen mit dem eingebetteten Token aufgerufen werden im Header von HTTP-Anfragen.

Hat Spring Restemplate oder Apache Camel etwas API, um dasselbe zu unterstützen?

    
sakura 10.07.2017, 10:16
quelle

1 Antwort

4

Gefolgt @ Gusto2 Ansatz, Es funktioniert ziemlich gut.

SO, ich habe zwei Routen erstellt - & gt; Der erste ist ein Timer wie unten, der das Token generiert, es periodisch aktualisiert (da die Route timerbasiert ist) und das Token in einer lokalen Variablen speichert, um von einer anderen Route wiederverwendet zu werden.

%Vor%

Und die zweite Route kann nachfolgende apis aufrufen, die das Token verwenden, das von der ersten Route generiert wurde, es wäre ungefähr so. Fügen Sie Szenarien zur Fehlerbehandlung hinzu, in denen das Token möglicherweise nicht gültig oder abgelaufen ist. Aber ich denke, das wäre ein separates Anliegen zu lösen.

%Vor%

Hier wird also das Token von der tokenObj -Bohne konsumiert (Instanz von RestTokenProducerRoute , für die die Methode getRefreshedToken() definiert ist. Sie gibt das gespeicherte Token zurück.

Unnötig zu erwähnen, dass Sie die Bean in der camelcontext-Registrierung wie folgt zusammen mit anderen Einstellungen (wie Komponente, Route usw.) festgelegt haben. In meinem Fall war es wie folgt.

%Vor%

Dies löst mein Problem, Token dynamisch zu setzen, wo Token als Ergebnis der Ausführung einer anderen Route erzeugt wird.

    
sakura 17.07.2017, 07:49
quelle