Exchange JWT voor toegangstoken
De JWT die in de vorige stap is gemaakt, wordt uitgewisseld met Adobe IMS API's voor een toegangstoken, dat vervolgens kan worden gebruikt om toegang te krijgen tot AEM as a Cloud Service. Om een Token van de Toegang te verzoeken verzend een verzoek van de POST die JWT, client_id, client_geheime aan de IMS authentificatiedienst bevat.
De volgende code is gebruikt om uitwisseling JWT voor Toegangstoken te produceren
public String getAccessToken() {
String jwtToken = getJWTToken();
GetServiceCredentials getCredentials = new GetServiceCredentials();
System.out.println("Getting Access Token");
try {
HttpClient httpClient = HttpClientBuilder.create().build();
HttpHost authServer = new HttpHost(getCredentials.getIMS_ENDPOINT(), 443, "https");
HttpPost authPostRequest = new HttpPost("/ims/exchange/jwt");
List < NameValuePair > nameValuePairs = new ArrayList < NameValuePair > ();
nameValuePairs.add(new BasicNameValuePair("jwt_token", jwtToken));
nameValuePairs.add(new BasicNameValuePair("client_id", getCredentials.getCLIENT_ID()));
nameValuePairs.add(new BasicNameValuePair("client_secret", getCredentials.getCLIENT_SECRET()));
authPostRequest.setEntity(new UrlEncodedFormEntity(nameValuePairs, Consts.UTF_8));
HttpResponse response;
response = httpClient.execute(authServer, authPostRequest);
StatusLine statusLine = response.getStatusLine();
System.out.println("The status code is " + statusLine.getStatusCode());
HttpEntity result = response.getEntity();
String jsonResponseStr = EntityUtils.toString(result);
System.out.println(jsonResponseStr);
JsonReader jsonReader = new JsonReader(new StringReader(jsonResponseStr));
JsonObject jsonObject = JsonParser.parseReader(jsonReader).getAsJsonObject();
System.out.println("Returning access_token " + jsonObject.get("access_token").getAsString());
return jsonObject.get("access_token").getAsString();
} catch (Exception e) {
System.out.print("Error: " + e.getMessage());
}
return "null";
}
recommendation-more-help
4859a77c-7971-4ac9-8f5c-4260823c6f69