code: public Result populateHeader(ClientRequest request, String authToken, String correlationId, String traceabilityId) {
          if(traceabilityId != null) {
              addAuthTokenTrace(request, authToken, traceabilityId);
          } else {
              addAuthToken(request, authToken);
          }
          Result<Jwt> result = tokenManager.getJwt(request);
          if(result.isFailure()) { return Failure.of(result.getError()); }
          request.getRequestHeaders().put(HttpStringConstants.CORRELATION_ID, correlationId);
          request.getRequestHeaders().put(HttpStringConstants.SCOPE_TOKEN, "Bearer " + result.getResult().getJwt());
          return result;
      }
docs: Support API to API calls with scope token. The token is the original token from consumer and
  the client credentials token of caller API is added from cache. authToken, correlationId and
  traceabilityId are passed in as strings.
  
  This method is used in API to API call
  
  @param request the http request
  @param authToken the authorization token
  @param correlationId the correlation id
  @param traceabilityId the traceability id
  @return Result when fail to get jwt, it will return a Status.