2016-07-09 12 views
0

Ein RESTful-API-Dienst benötigt ein oAuth-Token, das mit jeder Anforderung gesendet wird. So ein Java Apache basierten Client hat zum ersten Anforderungs-Token wie so ...Wie kann ein RESTful-API-Client ein oAuth-Token für zukünftige Anforderungen speichern?

import org.apache.commons.httpclient.HttpClient; 
import org.apache.commons.httpclient.HttpMethod; 
import org.apache.commons.httpclient.methods.GetMethod; 

String loginUrl = "https://jerseyrules.com/api/login1?name=joe&cleartext=schmoe"; 
HttpMethod method = new GetMethod(loginUrl); 
String responseCode = httpClient.executeMethod(method); 
String token = method.getResponseBodyAsString(); 

Erst jetzt kann der Client aufrufen, um die tatsächlichen Service-Methoden dieser API und es muss die OAuth-Token als Authorization Request-Header für jeden Durchlauf Bedienung.

Angenommen, dieser Client-Code wird im Batch-Modus mehrfach aufgerufen, um beispielsweise E-Mails an eine Empfängerliste zu senden. Um die eigentliche E-Mail zu senden, muss der RESTful-API-Dienst aufgerufen werden.

Muss der Client das oAuth-Token für jede gesendete E-Mail erneut anfordern? Gibt es eine Möglichkeit, wie der Client einmal ein oAuth-Token abrufen und es für spätere Aufrufe speichern kann? Was ist der beste Ort, um dieses oAuth-Token zu speichern? Angenommen, der Token wird in 3600 Sekunden ablaufen.

Können die Cookies des Httpclient verwendet werden, um das Token zu speichern ..

httpClient.getState().getCookies() 
+0

Sie das Token in jeder Art von Speicher sparen Ort, den du willst. Was wirklich wichtig ist, ist es, es in jede nachfolgende Anfrage mit dem richtigen Mechanismus zu senden. Häufig wird das Token als benutzerdefinierter Header gesendet. – alainlompo

+0

Danke, aber haben Sie irgendwelche Vorschläge bezüglich des Speichers und des Mechanismus für die erneute Übertragung? – AbuMariam

+0

Sie können sich hier ein Beispiel ansehen: https://github.com/alainlompo/performance-hub/blob/master/gatling/secured-websockel-tests/GAtlingSecuredWebsocketLoadTest.scala. Wenn nicht, versuchen Sie es mit einer ausführlicheren Quelle – alainlompo

Antwort

Verwandte Themen