code: protected String callRestApi(final String username, final String password) {
  
          final String basicAuth = Base64.getEncoder().encodeToString((username + ":" + password).getBytes(StandardCharsets.UTF_8));
          final Map<String, String> headers = new HashMap<>();
          headers.put(HttpConstants.AUTHORIZATION_HEADER, HttpConstants.BASIC_HEADER_PREFIX + basicAuth);
  
          HttpURLConnection connection = null;
          try {
              connection = HttpUtils.openPostConnection(new URL(url), headers);
              int code = connection.getResponseCode();
              if (code == 200) {
                  logger.debug("Authentication success for username: {}", username);
                  return HttpUtils.readBody(connection);
              } else if (code == 401 || code == 403) {
                  logger.info("Authentication failure for username: {} -> {}", username, HttpUtils.buildHttpErrorMessage(connection));
                  return null;
              } else {
                  logger.warn("Unexpected error for username: {} -> {}", username, HttpUtils.buildHttpErrorMessage(connection));
                  return null;
              }
          } catch (final IOException e) {
              throw new TechnicalException(e);
          } finally {
              HttpUtils.closeConnection(connection);
          }
      }
docs: Return the body from the REST API, passing the username/pasword auth.
  To be overridden using another HTTP client if necessary.
  
  @param username the username
  @param password the password
  @return the response body